PHP比较两个嵌套数组和predict的区别 [英] php compare two nested array and predict the difference
本文介绍了PHP比较两个嵌套数组和predict的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
怎么找到这两个阵列的区别
// ARRAY 1$ A1 =阵列(
A1=> 1,
A3=>阵列(
A31=> 31
)
A4=>阵列(
A41=> 41
)
A5=>阵列(
A51=> 51,
A52=> 52
)
);// ARRAY 2
$ A2 =阵列(
A1=> 1,
A2=> 2,
A3=>阵列(
A31=> 31,
A32=>阵列(
A321=> 321,
A322=> 322
)
)
A4=>阵列(
A41=> 42
)
A5=>阵列(
A51=> 51,
A52=> 52
)
);
和array_diff函数返回==> 阵列()
但是有一个很大的区别存在于上述两个数组变量。
例如:
- 在ARRAY1没有密钥A2但在ARRAY2 A2是可用的。
- ARRAY2 A3包含嵌套阵列(一层嵌套),但在阵列2包含两个嵌套子级。
所以我在这里要比较两个数组n级(即嵌套数组)
解决方案
$结果=和array_diff(array_map('序列化',$ A2),array_map('序列化',$ A1) );
$结果= array_map('反序列化',$结果);呼应'< pre>';
的print_r($结果);
How find difference of the two array
// ARRAY 1
$a1 = array(
"a1" => 1,
"a3" => array(
"a31" => 31
),
"a4" => array(
"a41" => 41
),
"a5" => array(
"a51" => 51,
"a52" => 52
)
);
// ARRAY 2
$a2 = array(
"a1" => 1,
"a2" => 2,
"a3" => array(
"a31" => 31,
"a32" => array(
"a321" => 321,
"a322" => 322
)
),
"a4" => array(
"a41" => 42
),
"a5" => array(
"a51" => 51,
"a52" => 52
)
);
array_diff function returns ==> Array ( )
But there is a lot of difference exist in the above two array variables.
example:
- in ARRAY1 There is no key a2 but in ARRAY2 a2 is available.
- ARRAY2 a3 contain nested array (one nested level ) but in ARRAY 2 contain two nested sub level.
So here i want to compare two array n-level (ie. nested array)
解决方案
$results = array_diff(array_map('serialize',$a2),array_map('serialize',$a1));
$results = array_map('unserialize',$results);
echo '<pre>';
print_r($results);
这篇关于PHP比较两个嵌套数组和predict的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文