2016-12-25 5 views
1

Я хочу проверить многомерный массив для значения ключа и напечатать другое значение ключа его родительского массива. Это может немного смутить. Но приведенный ниже пример может дать понять. У меня такой массив.проверка состояния в многомерном массиве

Entity Response : Array 
(
[0] => Array 
    (
     [type] => FieldTerminology 
     [relevance] => 0.709023 
     [count] => 4 
     [text] => domain name 
    ) 

[1] => Array 
    (
     [type] => Company 
     [relevance] => 0.603375 
     [count] => 2 
     [text] => Laravel 
    ) 

[2] => Array 
    (
     [type] => Person 
     [relevance] => 0.548389 
     [count] => 1 
     [text] => M. Naveen Kumar 
    ) 

Я хочу, чтобы проверить, если массив имеет key [type] и ее value = "Person", то я хочу, чтобы получить его значение key[text]. В этом случае я хочу напечатать M. Naveen Kumar

ответ

0

Вы можете пройти массив, чтобы найти его. вы можете использовать foreach(), array_walk() и так далее.

$o = []; 
array_walk($array, function($v) use(&$o){$v['type'] == 'Person' ? $o[] = $v['text'] : '';}); 
var_dump($o); 
0

Попробуйте

$people = array_filter($array, function($each) { return $each['type'] == 'Person'; }); 
$names = array_map(function($each) { return $each['name']; }, $people); 

Как это делает шаг за шагом работы?

  • Фильтр массив по типу с помощью array_filter
  • Тогда карта с именами, используя array_map
Смежные вопросы