這篇文章主要介紹了php如何移除重復數(shù)組的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php如何移除重復數(shù)組文章都會有所收獲,下面我們一起來看看吧。
10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有靈川免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
一、PHP數(shù)組去重的函數(shù)
PHP提供了兩個函數(shù)可以用來實現(xiàn)數(shù)組去重,分別是array_unique()和array_diff_key()。
array_unique()函數(shù)
array_unique()函數(shù)可以去除數(shù)組中重復的值,返回一個新數(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ù)組中的重復元素。
array_diff_key()函數(shù)
array_diff_key()函數(shù)可以將兩個數(shù)組做比較,返回兩個數(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不同的部分,返回為一個新數(shù)組。
二、手動實現(xiàn)數(shù)組去重
除了使用PHP函數(shù)外,我們還可以手動實現(xiàn)數(shù)組去重。
方法一
使用for循環(huán)和if語句對數(shù)組進行遍歷,判斷重復元素并將其移除。
示例代碼:
$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ù)對數(shù)組進行翻轉(zhuǎn),去掉重復鍵值對后使用array_flip()函數(shù)將數(shù)組翻轉(zhuǎn)回來。
示例代碼:
$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
)
這個方法不需要使用循環(huán),只需用array_flip()函數(shù)兩次即可。
關(guān)于“php如何移除重復數(shù)組”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“php如何移除重復數(shù)組”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。