我有两个我想要比较的数组。如果值在第一个数组中至少存在一次,我需要删除其中的值的一个数组。这是阵列的样子:
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"
}
}
我必须为几个看起来相似的不同数组实例执行此操作。
我试过了:
$result = array_diff($array1, $array2);
print_r($result);
然后返回:
{
25: {
0: "25"
}
}
{
24: {
0: "24"
}
}
{
24: {
0: "24"
}
}
虽然我意识到它正在返回这些值,因为第一个数组中有多个值。我想知道如何让它忽略双打。另外我不明白为什么23没有归还。
答案 0 :(得分:2)
应该工作:
<?php
foreach($array1 as $a1){
unset($array2[$a1[0]]);
}
?>