在 PHP 中,經常需要處理數組的操作,而有時一個數組中會有重複的元素,需要排除。本文將介紹幾種常用的方法來實作 PHP 陣列排除重複。
array_unique() 函數可以傳回一個新的數組,其中沒有重複的值。
範例程式碼:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_unique($arr); print_r($new_arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => cherry )
另一種排除重複的方法是使用循環遍歷數組,並使用in_array() 函數檢查每個值是否已經存在於新數組中。如果不存在,則將其新增至新數組。
範例程式碼:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array(); foreach ($arr as $value) { if (!in_array($value, $new_arr)) { $new_arr[] = $value; } } print_r($new_arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => cherry )
array_filter() 函數可用來刪除數組中的所有空值。如果使用回呼函數,則可以根據指定的條件來過濾數組的值。
範例程式碼:
$arr = array("apple", "banana", "cherry", "", "banana"); $new_arr = array_filter($arr); print_r($new_arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => cherry [4] => banana )
如果要排除重複的元素,可以使用回呼函數進行篩選。
範例程式碼:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_filter($arr, function ($value, $key) use ($arr) { return array_search($value, $arr) === $key; }, ARRAY_FILTER_USE_BOTH); print_r($new_arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => cherry )
這裡的回呼函數檢查值的索引是否等於數組中的索引,如果是,則值唯一。
另一個排除重複的方法是使用array_keys() 函數取得陣列中唯一的鍵,並使用array_values () 函數取得對應的值。
範例程式碼:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_values(array_unique(array_keys($arr, true))); print_r($new_arr);
輸出結果:
Array ( [0] => 0 [1] => 1 [2] => 2 )
這裡傳回的是鍵的數組,可以使用 array_map() 函數將其轉換為值的陣列。
範例程式碼:
$arr = array("apple", "banana", "cherry", "apple", "banana"); $new_arr = array_map(function ($key) use ($arr) { return $arr[$key]; }, array_values(array_unique(array_keys($arr, true)))); print_r($new_arr);
輸出結果:
Array ( [0] => apple [1] => banana [2] => cherry )
以上是幾種在PHP 中實作陣列排除重複的方法,每種方法都有不同的優缺點,根據特定的應用場景選擇最適合的方法。
以上是php數組排除重複的詳細內容。更多資訊請關注PHP中文網其他相關文章!