您好,登錄后才能下訂單哦!
這篇文章主要介紹了php如何移除重復數組的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇php如何移除重復數組文章都會有所收獲,下面我們一起來看看吧。
一、PHP數組去重的函數
PHP提供了兩個函數可以用來實現數組去重,分別是array_unique()和array_diff_key()。
array_unique()函數
array_unique()函數可以去除數組中重復的值,返回一個新數組。
示例代碼:
$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);
輸出結果:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
可見,array_unique()函數成功去掉了原數組中的重復元素。
array_diff_key()函數
array_diff_key()函數可以將兩個數組做比較,返回兩個數組差異部分的鍵名。
示例代碼:
$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);
輸出結果:
Array
(
[c] => blue
)
在例子中,array_diff_key()函數篩選出了$array1中與$array2不同的部分,返回為一個新數組。
二、手動實現數組去重
除了使用PHP函數外,我們還可以手動實現數組去重。
方法一
使用for循環和if語句對數組進行遍歷,判斷重復元素并將其移除。
示例代碼:
$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);
輸出結果:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
[4] => 7
[5] => 8
[6] => 9
)
in_array()函數判斷原數組中的元素是否已經出現在新數組中,若沒有則將其添加到新數組中。
方法二
使用array_flip()函數對數組進行翻轉,去掉重復鍵值對后使用array_flip()函數將數組翻轉回來。
示例代碼:
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));
print_r($new_arr);
輸出結果:
Array
(
[0] => 1
[1] => 2
[2] => 5
[3] => 6
[4] => 7
[5] => 8
[6] => 9
)
這個方法不需要使用循環,只需用array_flip()函數兩次即可。
關于“php如何移除重復數組”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“php如何移除重復數組”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。