我想使用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一样。
答案 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);