首頁  >  文章  >  後端開發  >  php怎麼去除數組中相同的值

php怎麼去除數組中相同的值

青灯夜游
青灯夜游原創
2022-09-28 18:21:053639瀏覽

三種方法:1、用array_unique,語法「array_unique(數組)」;2、用array_flip(),語法「array_flip(array_flip(數組))」;3、用foreach和兩個空數組,語法「foreach($arr as $k1=>$v1){$r1[$v1]=$k1;}foreach($r1 as $k2=>$v2){$r2[$v2]=$ k2;}」。

php怎麼去除數組中相同的值

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

移除陣列中相同的值,就是移除陣列中的重複值。 PHP數組去重有多種方法,以下要來跟大家介紹一下。

方法1:使用去重函數array_unique()

#array_unique() 函數用來移除陣列中重複的值。如果兩個或更多個數組值相同,只保留第一個值,其他的值被移除。

註解:被保留的陣列將保持第一個陣列項目的鍵名類型。

array_unique(array,sortingtype)
參數 描述
#array 必要。規定數組。
sortingtype 可選。規定排序類型。可能的值:
  • SORT_STRING - 預設。把每一項當作字串來處理。
  • SORT_REGULAR - 把每一項排列成常規順序(Standard ASCII,不會改變型別)。
  • SORT_NUMERIC - 把每一項當作數字來處理。
  • SORT_LOCALE_STRING - 把每一項當作字串來處理,基於目前區域設定(可透過 setlocale() 進行變更)。

傳回值:傳回過濾後的陣列。

範例:移除相同值

<?php
$arr1 =array("a"=>"Cat",2,"b"=>"Dog","c"=>"Cat",2,3,4,3);
var_dump($arr1);
$arr2=array_unique($arr1);
var_dump($arr2);
?>

php怎麼去除數組中相同的值

#方法2:利用array_flip()函數

array_flip() 函數用於反轉/交換數組中的鍵名和對應關聯的鍵值。

而陣列的鍵名(key)是唯一的、不會重複存在的。

利用這個特性,如果數組中有二個值是一樣的,那麼反轉數組後會保留最後一個鍵和值,這樣既可間接的實現數組的去重。

<?php
$arr =array("a"=>"Cat",2,"b"=>"Dog","c"=>"Cat",2,3,4,3);
var_dump($arr);
$arr1 = array_flip($arr);//先反转一次,去掉重复值
var_dump($arr1);
$arr2 = array_flip($arr1);//再反转回来,得到去重后的数组
var_dump($arr2);
?>

php怎麼去除數組中相同的值

方法1與方法2的差異:

用array_flip()得到的是重複元素最後的鍵與值,用array_unique得到的是重複元素中第一個鍵和值。

方法3:利用foreach語句和兩個空數組

還是利用鍵名唯一的特性,利用foreach語句和兩個空數組來反轉兩次數組的鍵名和鍵值的位置即可。

<?php 
header("content-type:text/html;charset=utf-8");
function f($arr){
	var_dump($arr);
	$res1=[];
	$res2=[];
	foreach($arr as $k1=>$v1){
		$res1[$v1]=$k1;
	}
	foreach ($res1 as $k2 => $v2){  
	    $res2[$v2]=$k2;
	}
	echo "去重后的数组:";
	var_dump($res2);
}

$arr=array(1,2,3,4,5,4,3,2,1,0);
f($arr);
?>

php怎麼去除數組中相同的值

推薦學習:《PHP影片教學

以上是php怎麼去除數組中相同的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn