本文共 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/