为了账号安全,请及时绑定邮箱和手机立即绑定

具有多维数组的array_diff()

具有多维数组的array_diff()

具有多维数组的array_diff()使用array_diff(),我可以比较和删除相似的项目,但是如果我有以下数组怎么办?数组1Array(     [0] => Array         (             [ITEM] => 1         )     [1] => Array         (             [ITEM] => 2         )     [2] => Array         (             [ITEM] => 3         ))ARRAY2Array(     [0] => Array         (             [ITEM] => 2         )     [1] => Array         (             [ITEM] => 3         )     [2] => Array         (             [ITEM] => 1         )     [3] => Array         (             [ITEM] => 4         ))我想过滤掉类似的物品;结果应该返回4.如何重新排列数组以便可以使用array_diff()?
查看完整描述

3 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您可以使用定义自定义比较功能array_udiff()

function udiffCompare($a, $b){
    return $a['ITEM'] - $b['ITEM'];}$arrdiff = array_udiff($arr2, $arr1, 'udiffCompare');print_r($arrdiff);

输出:

Array
(
    [3] => Array
        (
            [ITEM] => 4
        )
)

这使用并保留了数组的现有结构,我认为这是您想要的。


查看完整回答
反对 回复 2019-09-26
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

另一个有趣的json_encode技巧(如果您需要“原始”比较第一级数组中的一些复杂值,可能会很有用):

// Compare all values by a json_encode$diff = array_diff(array_map('json_encode', $array1), array_map('json_encode', $array2));// Json decode the result$diff = array_map('json_decode', $diff);


查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 979 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信