PHP判断数组是否有重复值

来自AI助手的总结
文章介绍了使用PHP检测数组中重复值的方法,包括一维和二维数组,并提供了根据二维数组局部键值判断重复的函数。

一、判断是否有重复值

if (count($arr) != count(array_unique($arr))) {
    echo '该数组有重复值';
}

说明:获取数组的元素数量,如果有重复的,array_unique函数会将重复的剔除掉,相比不等则有重复。

二、获取重复的值(一维数组的值完全相等是重复;如果是二维数组,二维数组中的值必须完全相同才是重复)

function getRepeat($arr) {
    // 获取去掉重复数据的数组   
    $unique_arr = array_unique ( $arr );   
    // 获取重复数据的数组   
    $repeat_arr = array_diff_assoc ( $arr, $unique_arr );
 
    return $repeat_arr;
}

三、二维数组局部键对应值数据判断是否重复

/*
作用:根据二维数组中的部分键值判断二维数组中是否有重复值
参数:
$arr  —— 目标数组
$keys —— 要进行判断的键值组合的数组
返回:重复的值
扩展:判断的键值
*/
function getRepeat($arr,$keys) {
   $unique_arr = array();
   $repeat_arr = array();
   foreach ($arr as $k => $v) {
      $str = "";
      foreach ($keys as $a => $b) {
         $str .= "{$v[$b]},";
      }
      if( !in_array($str, $unique_arr) ){
         $unique_arr[] = $str;
      } else {
         $repeat_arr[] = $v;
      }
   }
   return $repeat_arr;
}

 

例子:

$arr1 = array("aaa","bbb","ccc","ddd","aaa","bbb");
$arr2 = array("aaa","bbb","ccc","ddd","aaa");
$arr3 = array("aaa","bbb","lll","ddd","aaa","bbb");
$arr = array($arr1,$arr2,$arr3);
 
$keys = array(0,1,2);
var_dump(getRepeat($arr,$keys));

输出:

Array ( [0] => Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd [4] => aaa ) )

温馨提示: 本文最后更新于2025-03-02 00:05:57,某些文章具有时效性,若有错误或已失效,请在下方 留言或联系 蚂蚁官方
© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容