多维数组差异php [英] multidimensional array difference php
问题描述
我有两个多维数组,我想要区别.例如.我在下面拍摄了二维的两个数组
I have two multidimensional arrays and I want the difference. For eg. I have taken two-dimensional two arrays below
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[b1] => Array (
[b_name] => bbbbb
[b_value] => bbb
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
$array2 = Array (
[b1] => Array (
[b_name]=> zzzzz
)
)
现在我想要这两个数组的关键区别.我已经试过array_diff_key(),但它不适用于多维.
Now I want the key difference of these two arrays. I have tried array_diff_key() but it doesnot work for multidimensional.
array_diff_key($array1, $array2)
我希望输出如下
//output
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[b1] => Array (
[b_value] => bbb
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
如果您认为我的问题是真实的,请接受并回答.谢谢.
If you think my question is genuine please accept it and answer. Thank you.
编辑
现在,如果第二个数组是
Now if the second array is
$array2 = Array( [b1] => zzzzz)
结果应为
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
推荐答案
请检查我是否理解正确,然后此代码段可帮助您解决问题.我仅针对您指定的问题对其进行了测试.如果您要为其运行其他测试用例,则可以告诉我调整代码.
Please check if I understand you correctly then this code snippet can help to you solve your problem. I have tested it for your specified problem only. if there are other testcases for which you want to run this, you can tell me to adjust the code.
$a1 = array(
'a1' => array('a_name' => 'aaa', 'a_value' => 'aaaaa'),
'b1' => array('b_name' => 'bbb', 'b_value' => 'bbbbbb'),
'c1' => array('c_name' => 'ccc', 'c_value' => 'cccccc')
);
$a2 = array(
'b1' => array('b_name' => 'zzzzz'),
);
$result = check_diff_multi($a1, $a2);
print '<pre>';
print_r($result);
print '</pre>';
function check_diff_multi($array1, $array2){
$result = array();
foreach($array1 as $key => $val) {
if(isset($array2[$key])){
if(is_array($val) && $array2[$key]){
$result[$key] = check_diff_multi($val, $array2[$key]);
}
} else {
$result[$key] = $val;
}
}
return $result;
}
对代码进行了调整.
这篇关于多维数组差异php的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!