PHP在多维数组中查找数组

时间:2017-06-23 17:37:29

标签: php arrays algorithm

我想使用PHP在多维数组中找到一个数组。

例如:

$arr = array(

    '1253' => array('0' => 'av/data'),
    '1254' => array('1' => 'celling', '2' => 'electrical'),
    '1255' => array('1' => 'celling', '2' => 'electrical'),
);

想要搜索

array('1' => 'celling', '2' => 'electrical')

预期结果应为:

array('1254', '1255')

需要一种能够返回匹配索引的方法,就像lodash Javascript库中的_.findIndex一样。

2 个答案:

答案 0 :(得分:2)

array_search()array_keys()可以将数组作为针。 array_search()返回第一个匹配的密钥,array_keys()将返回所有匹配的密钥:

$keys = array_keys($arr, array('1' => 'celling', '2' => 'electrical'));

答案 1 :(得分:1)

循环主阵列并将其与搜索阵列进行比较。

 $arr = array(

    '1253' => array('0' => 'av/data'),
    '1254' => array('1' => 'celling', '2' => 'electrical'),
    '1255' => array('1' => 'celling', '2' => 'electrical'),
);

$array_check = array('1' => 'celling', '2' => 'electrical');

foreach($arr as $key=>$val){

    if($val === $array_check){
        $new_array[]=$key;
    }
}

print_r($new_array);