我需要区分这两个数组,我试过array_diff($array1,$array2)
没有成功,不知道吗?
ARRAY1
Array
(
[0] => Array
(
[status] => 61192106047320064
)
[1] => Array
(
[status] => 61185038284357632
)
[2] => Array
(
[status] => 61182890951720960
)
)
数组2
Array
(
[0] => Array
(
[status] => 61185038284357632
)
[1] => Array
(
[status] => 61182890951720960
)
)
提前感谢。
答案 0 :(得分:2)
根据array_diff,
此函数仅检查n维数组的一维。当然,您可以使用array_diff($ array1 [0],$ array2 [0]);来检查更深的维度。
因此,您无法直接对这些数组的第二维进行区分。
相反,也许您可以使用array_map提取status
值,另存为两个1维数组,然后array_diff
。如果您有多个键,请使用for循环。
答案 1 :(得分:2)
也许我误解了,但是你不能为你的具体问题做这样的事吗?
$newStatuses = array();
foreach($array1 as $element1) {
foreach($array2 as $element2) {
if($element1['status'] == $element2['status']) {
continue 2;
}
}
$newStatuses[] = $element1;
}
$ newStatuses的每个元素都是一个数组,其array1中的'status'元素不在array2中。
所以,$ newStatuses就是这样:
Array
(
[0] => Array
(
[status] => 61192106047320064
)
)
答案 2 :(得分:-1)
看看这段代码,它是cakephp的一部分,但你可能能够适应/撕掉它
https://github.com/cakephp/cakephp/blob/master/cake/libs/set.php#L792
和文档