![](/img/trans.png)
[英]Remove array from a multidimensional array if the same value exists in another multidimensional array
[英]Removing values from an array when the same value exists in another array
我有两个数组要比较。 如果值在第一个数组中至少存在一次,则需要删除其中一个值。 这是数组的样子:
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。
应该管用:
<?php
foreach($array1 as $a1){
unset($array2[$a1[0]]);
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.