三種方法: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入門到就業線上直播課:進入學習
API 檔案、設計、偵錯、自動化測試一體化共同作業工具:
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
去除陣列中相同的值,就是去除陣列中的重複值。PHP陣列去重有多種方法,下面給大家介紹一下。
方法1:使用去重函數array_unique()
array_unique() 函數用於移除陣列中重複的值。如果兩個或更多個陣列值相同,只保留第一個值,其他的值被移除。
註釋:被保留的陣列將保持第一個陣列項的鍵名型別。
array_unique(array,sortingtype)
登入後複製
引數 | 描述 |
---|---|
array | 必需。規定陣列。 |
sortingtype | 可選。規定排序型別。可能的值:
|
返回值:返回過濾後的陣列。
範例:去除相同值
<?php
$arr1 =array("a"=>"Cat",2,"b"=>"Dog","c"=>"Cat",2,3,4,3);
var_dump($arr1);
$arr2=array_unique($arr1);
var_dump($arr2);
?>
登入後複製
方法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);
?>
登入後複製
方法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怎麼去除陣列中相同的值的詳細內容,更多請關注TW511.COM其它相關文章!