I have two multidimensional arrays and I want the difference. For eg. I have taken two-dimensional two arrays below
$array1 = Array (
[a1] => Array
Try the function:
1, 'white' => ['purple' => 4, 'green' => 3], 'red' => 2];
$filter = ['blue' => 6, 'white' => ['yellow' => 7, 'green' => 5], 'red' => 2];
/**
* @param array $input
* @param array $filter
* @return array
*/
function multidimensionalArrayDiffKey(array $input, array $filter)
{
if ($diff = array_diff_key($input, $filter)){
return $diff;
}else{
foreach($input as $key => $value){
if(is_array($value) && $diff = multidimensionalArrayDiffKey($value, $filter[$key])){
return [$key => $diff];
}
}
}
return [];
}
print_r(multidimensionalArrayDiffKey($input, $filter));
Result:
Array
(
[white] => Array
(
[purple] => 4
)
)