PHP判断数组是否有重复值、获取重复值
2023-06-13 09:12:24 时间
一、判断是否有重复值
if (count($arr) != count(array_unique($arr))) {
echo '该数组有重复值';
}
二、获取重复的值(一维数组的值完全相等是重复;如果是二维数组,二维数组中的值必须完全相同才是重复)
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));
输出:
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)
相关文章
- php拼接循环拼接字符串数组,PHP数组拼接
- 快速修改PHP镜像中的php.ini并生效 - wuuconix's blog
- 交互PHP与MySQL联动:实现数据交互(php与mysql数据库)
- PHP array_search():在数组中搜索给定的值并返回键名或索引
- 一步步获取 PHP 导入 MySQL 无忧(php导入mysql)
- 教你如何用 PHP 创建 MySQL 数据表(php创建mysql表)
- PHP编程:如何获取和处理MySQL错误信息(php获取mysql错误)
- 使用PHP遍历MySQL数据库 – 一步一步教程(php遍历mysql)
- PHP操作MySQL精通实战(php 操作 mysql)
- PHP连接MSSQL实现数据库操作(php用mssql)
- PHP与MSSQl的兼容性探索(php mssql 兼容)
- PHP数组实现高性能存储Redis技术(redisphp数组)
- PHP第二节数据类型之数组
- PHP常用特殊运算符号和函数总结(php新手入门必看)
- PHP使用DES进行加密与解密的方法详解
- PHP获取和操作配置文件php.ini的几个函数介绍
- PHP和JavaScrip分别获取关联数组的键值示例代码