您好,登錄后才能下訂單哦!
這篇文章主要介紹了php如何移除重復(fù)數(shù)組的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇php如何移除重復(fù)數(shù)組文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
一、PHP數(shù)組去重的函數(shù)
PHP提供了兩個(gè)函數(shù)可以用來(lái)實(shí)現(xiàn)數(shù)組去重,分別是array_unique()和array_diff_key()。
array_unique()函數(shù)
array_unique()函數(shù)可以去除數(shù)組中重復(fù)的值,返回一個(gè)新數(shù)組。
示例代碼:
$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);
輸出結(jié)果:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
可見,array_unique()函數(shù)成功去掉了原數(shù)組中的重復(fù)元素。
array_diff_key()函數(shù)
array_diff_key()函數(shù)可以將兩個(gè)數(shù)組做比較,返回兩個(gè)數(shù)組差異部分的鍵名。
示例代碼:
$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "green", "d" => "yellow");
$result = array_diff_key($array1, $array2);
print_r($result);
輸出結(jié)果:
Array
(
[c] => blue
)
在例子中,array_diff_key()函數(shù)篩選出了$array1中與$array2不同的部分,返回為一個(gè)新數(shù)組。
二、手動(dòng)實(shí)現(xiàn)數(shù)組去重
除了使用PHP函數(shù)外,我們還可以手動(dòng)實(shí)現(xiàn)數(shù)組去重。
方法一
使用for循環(huán)和if語(yǔ)句對(duì)數(shù)組進(jìn)行遍歷,判斷重復(fù)元素并將其移除。
示例代碼:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array();
for ($i = 0; $i < count($arr); $i++) {
if (!in_array($arr[$i], $new_arr)) {
$new_arr[] = $arr[$i];
}
}
print_r($new_arr);
輸出結(jié)果:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
[4] => 7
[5] => 8
[6] => 9
)
in_array()函數(shù)判斷原數(shù)組中的元素是否已經(jīng)出現(xiàn)在新數(shù)組中,若沒有則將其添加到新數(shù)組中。
方法二
使用array_flip()函數(shù)對(duì)數(shù)組進(jìn)行翻轉(zhuǎn),去掉重復(fù)鍵值對(duì)后使用array_flip()函數(shù)將數(shù)組翻轉(zhuǎn)回來(lái)。
示例代碼:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));
print_r($new_arr);
輸出結(jié)果:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
[4] => 7
[5] => 8
[6] => 9
)
這個(gè)方法不需要使用循環(huán),只需用array_flip()函數(shù)兩次即可。
關(guān)于“php如何移除重復(fù)數(shù)組”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“php如何移除重復(fù)數(shù)組”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。