[英]Find difference between two multidimensional associative array by a specific key?
我正在尝试不使用嵌套循环来完成此操作。 我有以下2个数组:
$arr1 = array(
0 => array(
"key" => 1,
"value" => "Test 1"
),
1 => array(
"key" => 35
"value" => "Test 2"
)
...
);
$arr2 = array(
0 => array(
"key" => 1,
"value" => "Test 1"
)
...
);
print_r(array_diff_magic($arr1, $arr2));
返回通过比较子数组的“键”值从数组2中删除的数组1中的所有项目。 无法使用array_diff_keys,因为需要比较子数组的“键”而不是主数组的键。 输出应该是这样的:
array(1) {
[0] => array(2) {
["key"] => 35,
["value"] => "Test 2"
}
}
有没有一种方法可以不使用嵌套的foreach循环?
尝试使用array_udiff获得差异,然后使用array_values在0处开始生成数组的索引:
$arr3 = array_values(array_udiff($arr1, $arr2, function($a, $b) {
return $a['key'] - $b['key'];
}));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.