博客
关于我
PHP判断数组是否有重复值、获取重复值
阅读量:793 次
发布时间:2023-03-01

本文共 1297 字,大约阅读时间需要 4 分钟。

判断是否有重复值

判断数组中是否存在重复值,可以通过比较数组的长度和去重后的数组长度来实现。具体方法如下:

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

获取重复的值

对于一维数组,可以使用 array_diff_assoc 函数来获取重复值。该函数会返回一个数组,包含原数组中去重后被去除的元素。

function getRepeat($arr) {
$unique_arr = array_unique($arr);
$repeat_arr = array_diff_assoc($arr, $unique_arr);
return $repeat_arr;
}

二维数组的重复值判断

对于二维数组,需要根据指定的键值对进行判断。如果二维数组中的某些键值对在多个元素中重复出现,则视为重复值。以下是一个实现方法:

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 (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)

通过上述方法,可以轻松判断和获取数组中的重复值。

转载地址:http://djtfk.baihongyu.com/

你可能感兴趣的文章
PAT甲级——1006 Sign In and Sign Out (25分)
查看>>
PAT甲级——1007 Maximum Subsequence Sum (25分)
查看>>
PAT甲级——1009 Product of Polynomials (25分)(最后一个测试点段错误)
查看>>
Spring对jdbc的支持
查看>>
PayPal网站付款标准版(for PHP)
查看>>
Paystack Android SDK 集成与使用指南
查看>>
pbf格式详解,javascript加载导出pbf文件示例
查看>>
PBOC2.0与3.0的区别
查看>>
PbootCMS entrance.php SQL注入漏洞复现
查看>>
PbootCMS 前台RCE漏洞复现
查看>>
PBT
查看>>
PB级分析型数据库ClickHouse的应用场景和特性
查看>>
pc3-12800
查看>>
PCA---主成成分分析
查看>>
pca算法
查看>>
PCA降维demo
查看>>
SharePoint 2013 图文开发系列之定义站点模板
查看>>
PCB设计十条黄金法则
查看>>
SpringSecurity框架介绍
查看>>
PCI Express学习篇:Power Management(二)
查看>>