$array1 = array (
'1' => A,
'2' => B,
'3' => C
);
$array2 = array (
'1' => A,
'4' => B,
'5' => D
);
$array3 = array (
'5' => A,
'6' => E,
'7' => D
);
$array4 = array (
'4' => A,
'7' => B,
'10' => C
);
我想找出具有所有不同键的数组,而不是单个键在数组之间应该是通用的。
$array1 - $array3, $array1 - $array4
是两种没有共用键的组合。算法的输出应该是这些组合。
答案 0 :(得分:5)
如果两个数组没有公共密钥,那么
count(array_intersect_key($a, $b))
应为0
答案 1 :(得分:1)
要从两个数组中查找唯一键,您可以使用此
$newArray = array_diff_key($targetArray, $compArray);
答案 2 :(得分:0)
类似的东西:
function test() {
$arrays = func_get_args();
for($i = 0; $i < count($arrays); $i++) {
if (($i + 1) == count($arrays))
break;
for($k = $i; $k < count($arrays); $k++) {
if (count(array_intersect_key($arrays[$i], $arrays[$k])) == 0){
var_dump($arrays[$i]);
var_dump($arrays[$k]);
printf('<hr />');
}
}
}
}
print_r(test($array1, $array2, $array3, $array4));
应该解决你的问题。