我有两个数组,我试图比较。我需要删除其中一个数组中的值,如果这些值在第一个数组中至少出现一次。下面是数组的样子:
array1: {
1: {
0: "1"
},
1: {
0: "1"
},
24: {
0: "24"
},
24: {
0: "24"
},
24: {
0: "24"
},
24: {
0: "24"
},
26: {
0: "26"
}
},
array2: {
1: {
0: "blue"
},
23: {
0: "yellow"
},
24: {
0: "red"
},
26: {
0: "green"
}
},
我需要做的是检查array1的键,如果array2在键中有相同的值,则从数组2中删除它们。在这个例子中,最后应该只有
array2: {
23: {
0: "yellow"
}
}
我必须为几个看起来相似的数组的不同实例这样做。
I have try:
$result = array_diff($array1, $array2);
print_r($result);
返回:
{
25: {
0: "25"
}
}
{
24: {
0: "24"
}
}
{
24: {
0: "24"
}
}
虽然我意识到它返回这些值,因为在第一个数组中有它们的倍数。我想知道怎样才能让它忽略双数。我也不明白为什么23没有被退回。
应该工作:
<?php
foreach($array1 as $a1){
unset($array2[$a1[0]]);
}
?>