M.M.H.Masud
M.M.H.Masud

Reputation: 329

PHP Find an Array inside a multi-dimensional Array

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

Answers (2)

Ravinder Reddy
Ravinder Reddy

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

AbraCadaver
AbraCadaver

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

Related Questions