在PHP編程中,數組是常用的數據類型之一。array_unique()函數是相對常用的數組函數之一,它可以過濾數組重復元素,即去重。當數組中存在重復元素時,函數會將后面出現的重復元素過濾掉,只保留第一次出現的元素。
以下是一個簡單的示例:
$nums = array(1, 2, 3, 2, 4, 1); $unique_nums = array_unique($nums); print_r($unique_nums); // 輸出:Array ( [0] =>1 [1] =>2 [2] =>3 [4] =>4 )
在上面的示例中,初始數組$nums中有重復元素2和1。使用array_unique()函數后,$unique_nums數組只保留了第一次出現的2和1,其他元素都被過濾掉了。
需要注意的是,函數僅比較相鄰的元素。也就是說,如果要過濾多個重復元素,則需要多次調用array_unique()函數。
以下示例中,標記了需要過濾的元素分別為重復數字和字符串。使用array_unique()函數分別進行兩次去重:
$nums = array(1, 2, 3, 2, 4, 1); $strs = array('apple', 'banana', 'orange', 'banana', 'cherry', 'cherry'); $unique_nums = array_unique($nums); $unique_strs = array_unique($strs); print_r($unique_nums); // 輸出:Array ( [0] =>1 [1] =>2 [2] =>3 [4] =>4 ) print_r($unique_strs); // 輸出:Array ( [0] =>apple [1] =>banana [2] =>orange [4] =>cherry )
注意,數組元素的鍵值會保留。也就是說,雖然重復元素被過濾掉了,但其對應的鍵值仍然存在。
如果想去除數組中的重復元素及其鍵值,可以將過濾后的數組使用array_values()函數進行重置鍵值:
$nums = array(1, 2, 3, 2, 4, 1); $unique_nums = array_unique($nums); $unique_nums_reset = array_values($unique_nums); print_r($unique_nums_reset); // 輸出:Array ( [0] =>1 [1] =>2 [2] =>3 [3] =>4 )
這樣,過濾后的數組就會重新生成索引數組。
總之,array_unique()函數是一個常用的數組函數,可以方便快捷地對數組進行去重操作,提高代碼的效率和可讀性。