前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP判断数组是否有重复值、获取重复值

PHP判断数组是否有重复值、获取重复值

作者头像
友儿
发布2022-09-11 16:00:28
3.7K0
发布2022-09-11 16:00:28
举报
文章被收录于专栏:友儿

一、判断是否有重复值

代码语言:javascript
复制
if (count($arr) != count(array_unique($arr))) {
 echo '该数组有重复值';
}

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

代码语言:javascript
复制
function getRepeat($arr) {
    
 // 获取去掉重复数据的数组 
 $unique_arr = array_unique ( $arr ); 
 // 获取重复数据的数组 
 $repeat_arr = array_diff_assoc ( $arr, $unique_arr );
 
 return $repeat_arr;
}

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

代码语言:javascript
复制
/*
    作用:根据二维数组中的部分键值判断二维数组中是否有重复值
    参数:
        $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;
}

举个例子:

代码语言:javascript
复制
$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));
 
输出:
 
D:\office\wamp64\www\test.php:46:
array (size=1)
 0 => 
 array (size=5)
 0 => string 'aaa' (length=3)
 1 => string 'bbb' (length=3)
 2 => string 'ccc' (length=3)
 3 => string 'ddd' (length=3)
 4 => string 'aaa' (length=3)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档