在考虑重复值的同时比较两个数组 [英] To compare two arrays while considering duplicate value

查看:64
本文介绍了在考虑重复值的同时比较两个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个数组

$array1 = array(1, 2,  2, 3);
$array2 = array( 1, 2,  3,4);

什么时候做的:

var_dump(array_diff($array1, $array2));

获取:

array(0){}

作为输出,但我正在寻找:

as output , but i am looking for :

array(1){[2]=>2}

有人可以让我知道怎么做吗

can someone please let me know how to do it

预先感谢

推荐答案

尝试一下

$array1 = array(1, 2, 2, 3, 4, 5, 5, 7);
$array2 = array(1, 2, 4, 6, 3, 3, 5);
$diff = array_filter($array1, 
  function ($val) use (&$array2) { 
    $key = array_search($val, $array2);
    if ( $key === false ) return true;
    unset($array2[$key]);
    return false;
  }
);
print_r($diff);
// Array ( [2] => 2 [6] => 5 [7] => 7 )

这篇关于在考虑重复值的同时比较两个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆