检查多维数组中的条件

时间:2016-12-25 07:32:59

标签: php arrays

我想检查多维数组中的键值,并打印其父数组的另一个键值。这可能会让人感到困惑。但是下面的例子可以说清楚。我有这样的阵列。

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

2 个答案:

答案 0 :(得分:0)

您可以遍历数组以找到它。你可以使用foreach(),array_walk()等。

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

答案 1 :(得分:0)

试试这个

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

这是如何一步一步的?

  • 使用array_filter
  • 按类型过滤数组
  • 然后使用array_map
  • 映射到名称