2016-12-25 49 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