首頁 > 後端開發 > PHP問題 > php數組排除重複

php數組排除重複

WBOY
發布: 2023-05-06 13:23:07
原創
523 人瀏覽過

在 PHP 中,經常需要處理數組的操作,而有時一個數組中會有重複的元素,需要排除。本文將介紹幾種常用的方法來實作 PHP 陣列排除重複。

  1. 使用 array_unique() 函數

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
)
登入後複製
登入後複製
登入後複製
登入後複製
  1. #使用循環遍歷排除重複

另一種排除重複的方法是使用循環遍歷數組,並使用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
)
登入後複製
登入後複製
登入後複製
登入後複製
  1. #使用array_filter() 函數

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
)
登入後複製
登入後複製
登入後複製
登入後複製

這裡的回呼函數檢查值的索引是否等於數組中的索引,如果是,則值唯一。

  1. 使用array_keys() 和array_values() 函數

另一個排除重複的方法是使用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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板