2010-12-08 4 views
50

Пример print_r($myarray)Как получить одно значение из PHP массива

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] 
+3

Можете ли вы уточнить, что вы подразумеваете под «единый формат»? – Arkaaito 2010-12-08 03:33:55

+0

Я не знаю, как это назвать. но из массива я хочу получить данные один за другим. – wow 2010-12-08 03:36:31

+1

echo $ myarray ['email'] Показывает [email protected], единственное значение. Непонятно, что вы просите! – 2010-12-08 03:38:32

ответ

74

Посмотрите на ключи и отступы в вашем print_r:

echo $myarray[0]['email']; 

echo $myarray[0]['gender']; 

... и т.д.

16

Я думаю, что вы хотите:

foreach ($myarray as $key => $value) { 
    echo "$key = $value\n"; 
} 
+0

из того, что я понял, я согласен! – Trufa 2010-12-08 03:40:23

1

Первый элемент $myarray является массив значений, которые вы хотите. Итак, прямо сейчас,

echo $myarray[0]['email']; // This outputs '[email protected]' 

Если вы хотите, чтобы массив стать $myarray, то вам просто нужно сделать

$myarray = $myarray[0]; 

Теперь $myarray['email'] и т.д. будет выводиться как ожидалось.

32

Использование array_shift функция

$myarray = array_shift($myarray); 

Это переместит элементы массива на один уровень вверх, и вы можете получить доступ к любому элементу массива без использования ключа [0]

echo $myarray['email']; 

покажет [email protected]

1

Вы также можете использовать 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')); 
0
echo $myarray[0]->['email']; 

Попробуйте это только если это вы пропусканием stdclass object

Смежные вопросы