我的心快要爆炸了。需要获取数组1中id为4和6的数组元素。基本上是这两个数组的区别。我尝试使用 for 每个循环,但我无法获得我想要的输出
Array 1(
0 => array(
id: 1
)
1 => array(
id: 4
)
2 => array(
id: 5
)
3 => array(
id: 6
)
)
Array 2(
0 => array(
id: 1
)
1 => array(
id: 5
)
)
我想要的输出:
new Array (
0 => array (
id: 4
)
1 => array (
id: 6)
)
我尝试过的:
foreach ($array1 as $key => $value) {
foreach ($array2 as $key2 => $value2) {
if($value2['id'] !== $value['id']){
$result['id'] = $value2['id'];
}
}
}
您可以像这样使用 array_udiff() 函数。
function diffCompare($a, $b)
{
return $a['id'] - $b['id'];
}
$difference = array_udiff($array1, $array2, 'diffCompare');
foreach ($array1 as $key => $value) {
foreach ($array2 as $key2 => $value2) {
if ($value2['id'] !== $value['id']) {
unset($array1[$key2]);
}
}
}
$array1
的数组元素比 array2 更多。我的问题是我需要获取 $array1
中不存在于 $array2
中的元素。
要解决此问题,如果
$array2
中存在 $array1
元素,请取消设置 $array1
中的元素。 $array1
将返回$array2
中不存在的元素。
使用 array_diff_key 获得预期的输出。
array_diff_key($array1, $array2)
它将 array1 中的键与 array2 中的键进行比较, 返回差值。这个函数类似于 array_diff(),除了 比较是在键而不是值上进行的。