2017-02-16 7 views
0

я следующее:PHP: Получить одно значение из сложного массива

Array ([0] => Array ([0] => Array ([value] => 150109 [format] => [safe_value] => 150109))) 

Мне нужно получить значение «150109», но как на земле я выполняю это?

+0

'$ data [0] [0] [" value "]' или '$ data [0] [0] [" safe_value "]' если '$ data' является вашим массивом –

+0

вы пытались выполнить поиск в Google ответ? Вы должны найти [другие ответы] (http://stackoverflow.com/questions/17139453/php-accessing-multidimensional-array-values) при доступе к значениям многомерных массивов. – mickadoo

ответ

2

Верхний уровень:

print_r($data); 
// Output: Array ([0] => Array ([0] => Array ([value] => 150109 [format] => [safe_value] => 150109))) 

первейшая элемент:

print_r($data[0]); 
// Output: Array ([0] => Array ([value] => 150109 [format] => [safe_value] => 150109)) 

Следующий уровень:

print_r($data[0][0]); 
// Output: Array ([value] => 150109 [format] => [safe_value] => 150109) 

Окончательное значение

echo $data[0][0]['value']; 
// Output: 150109 

Доступ к каждому слою значений таким образом, что делает его легче понять, как добраться до нужного значения. Через некоторое время это становится более очевидным.

+0

Только первый (верхний уровень) на самом деле выводит сообщение. Итак print_r ($ data); дает мне: Array ([und] => Array ([0] => Array ([value] => 150109 [format] => [safe_value] => 150109))). Эта конструкция немного отличается от моего начального массива. – oivindr

+0

@oivindr Тогда у вас есть разные данные, чем в вашем примере. Однако, чтобы получить значение в этом массиве, вы будете делать '$ data ['und'] [0] ['value']'. – OptimusCrime

+0

Спасибо! Мне нужно очистить свой код, но похоже, что он работает. BTW, я получил первый конструктор массива, когда использовал: print_r (array_values ​​($ artnr)); Не знаю, почему они отличаются. – oivindr

0

Вы можете использовать получить значения массивов continusly на многомерных массивов:
$value = $array[0][0]["value"];