1. 程式人生 > >php判斷檢測一個數組裡有沒有重複的值

php判斷檢測一個數組裡有沒有重複的值

一、判斷是否有重複值

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;