溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用php去掉數(shù)組重復(fù)的值

發(fā)布時(shí)間:2020-07-15 13:50:52 來源:億速云 閱讀:159 作者:Leah 欄目:編程語言

如何使用php去掉數(shù)組重復(fù)的值?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

php去掉數(shù)組重復(fù)值的方法:1、用第一個(gè)數(shù)組的每個(gè)值和第二個(gè)數(shù)組比較,如果相同就刪除;2、使用【array_unique()】函數(shù)可以移除數(shù)組中的重復(fù)的值,并返回結(jié)果數(shù)組;3、使用【array_flip()】反轉(zhuǎn)數(shù)組鍵和值的函數(shù)。

php去掉數(shù)組重復(fù)值的方法:

第一、用數(shù)組循環(huán)比較

$arr = array(1,2,4,2,0,9,8,5);//定義一個(gè)數(shù)組。
$arr1 = $arr; //定義另一個(gè)數(shù)組和上一個(gè)數(shù)組一樣。
//循環(huán)第一個(gè)數(shù)組讓后循環(huán)第二個(gè)數(shù)組,用第一個(gè)數(shù)組的每個(gè)值和第二個(gè)數(shù)組比較,如果相同就刪除,最后輸出第二個(gè)數(shù)組就行了。
for($i = 0;$i<count($arr);$i++){
for($j=$i+1;$j<count($arr);$j++){
if($arr[$i] == $arr[$j])
unset($arr1[$i]);
}
}
echo'<pre>';
print_r($arr1);

第二、如果允許使用array_uniqe()函數(shù)的話,直接array_uniqe(直接寫數(shù)組名就ok)。

在PHP中可以使用內(nèi)置函數(shù)array_unique()來直接刪除重復(fù)元素,也可以使用array_flip()函數(shù)來間接刪除重復(fù)元素。

1.array_unique()函數(shù)

array_unique()函數(shù)可以移除數(shù)組中的重復(fù)的值,并返回結(jié)果數(shù)組;當(dāng)幾個(gè)數(shù)組元素的值相等時(shí),只保留第一個(gè)元素,其他的元素被刪除。

代碼示例:

<?php$result1 = array("a" => "green", "red", "b" => "green", "blue",
"red");var_dump($result1);$result2 = array_unique($result1);var_dump($result2);?>

2.array_flip()函數(shù)

array_flip()是反轉(zhuǎn)數(shù)組鍵和值的函數(shù),它有個(gè)特性就是如果數(shù)組中有二個(gè)值是一樣的,那么反轉(zhuǎn)后會(huì)保留最后一個(gè)鍵和值,利用這個(gè)特性我們用他來間接的實(shí)現(xiàn)數(shù)組的去重。

代碼示例:

<?phpheader("content-type:text/html;
charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 輸出原始數(shù)組echo "原始數(shù)組
:";var_dump($a);// 。
通過使用翻轉(zhuǎn)鍵和值移除重復(fù)值$a = array_flip($a);
// 通過再次翻轉(zhuǎn)鍵和值來恢復(fù)數(shù)組元素$a = array_flip($a);// 重新排序數(shù)組鍵$a = array_values($a);// 輸出更新后的數(shù)組echo "更新數(shù)組 :";var_dump($a);?>


看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI