Reputation: 329
I want to find an array inside a multi dimensional array using PHP.
For example:
$arr = array(
'1253' => array('0' => 'av/data'),
'1254' => array('1' => 'celling', '2' => 'electrical'),
'1255' => array('1' => 'celling', '2' => 'electrical'),
);
Want to search for
array('1' => 'celling', '2' => 'electrical')
expected result should be:
array('1254', '1255')
Need a way that will return the match index, just like _.findIndex in lodash Javascript library.
Upvotes: 1
Views: 46
Reputation: 3879
Loop the main array and compare it with search array.
$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);
Upvotes: 1
Reputation: 78994
array_search() and array_keys() can take an array as the needle. array_search()
returns the first matching key and array_keys()
will return all matching keys:
$keys = array_keys($arr, array('1' => 'celling', '2' => 'electrical'));
Upvotes: 2