Ответ 1
Посмотрите на клавиши и отступы в print_r
:
echo $myarray[0]['email'];
echo $myarray[0]['gender'];
... и т.д.
Пример print_r($myarray)
Array
(
[0] => Array
(
[id] => 6578765
[name] => John Smith
[first_name] => John
[last_name] => Smith
[link] => http://www.example.com
[gender] => male
[email] => [email protected]
[timezone] => 8
[updated_time] => 2010-12-07T21:02:21+0000
)
)
Вопрос, как получить $myarray
в одном значении, например:
echo $myarray['email']; will show [email protected]
Посмотрите на клавиши и отступы в print_r
:
echo $myarray[0]['email'];
echo $myarray[0]['gender'];
... и т.д.
Используйте функцию array_shift
function
$myarray = array_shift($myarray);
Это переместит элементы массива на один уровень вверх, и вы можете получить доступ к любому элементу массива, не используя клавишу [0]
echo $myarray['email'];
покажет [email protected]
Я думаю, вы этого хотите:
foreach ($myarray as $key => $value) {
echo "$key = $value\n";
}
Вы также можете использовать array_column()
. Доступно в PHP 5.5: php.net/manual/en/function.array-column.php
Возвращает значения из одного столбца массива, идентифицированного ключом column_key. При желании вы можете предоставить index_key для индексации значений в возвращаемом массиве по значениям из столбца index_key во входном массиве.
print_r(array_column($myarray, 'email'));
Первый элемент $myarray
- это массив требуемых значений. Итак, прямо сейчас,
echo $myarray[0]['email']; // This outputs '[email protected]'
Если вы хотите, чтобы этот массив стал $myarray
, вам просто нужно сделать
$myarray = $myarray[0];
Теперь $myarray['email']
и т.д. будет выводиться как ожидалось.
foreach ($newarray as $key => $val) {
echo "$key = $val\n";
}
echo $myarray[0]->['email'];
Попробуйте это, только если вы проходите stdclass object