PHP 陣列去重時指定移除重複元素的依據

WBOY
發布: 2024-04-28 22:48:02
原創
834 人瀏覽過

PHP 的 array_unique() 函數用於移除陣列中重複元素,其預設使用嚴格相等 (===)。我們可以透過自定比較函數來指定去重依據:建立自定比較函數,指定去重的標準(例如根據元素長度);將自訂比較函數作為第三個參數傳遞給array_unique() 函數,即可根據指定的標準移除重複元素。

PHP 数组去重时指定去除重复元素的依据

使用PHP 陣列_unique() 函數指定去重依據

簡介

_unique() 函數用於從一個陣列中移除重複元素。預設情況下,它使用嚴格相等 (===) 來判定重複元素。但是,我們可以透過提供一個自定比較函數來指定去重依據,從而根據不同的標準去除重複元素。

程式碼範例

<?php

// 创建一个包含重复元素的数组
$arr = array(
    'a', 'b', 'c', 'd',
    'a', 'c', 'e', 'f'
);

// 使用默认的严格相等比较器去除重复元素
print_r(array_unique($arr));

// 自定比较器,根据元素长度去除重复元素
$length_comparator = function($a, $b) {
    return strlen($a) == strlen($b);
};

// 使用自定比较器去除重复元素
print_r(array_unique($arr, SORT_REGULAR, $length_comparator));

?>
登入後複製

輸出結果

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [6] => e
)
登入後複製

實戰案例

##假設我們有一個學生物件的數組,每個物件都有一個名字和年齡。我們可以使用

_unique() 函數和一個自定比較器來去除具有相同年齡的學生:

<?php

class Student {
    public $name;
    public $age;
}

// 创建一个包含具有相同年龄的学生对象的数组
$students = array(
    new Student('Alice', 20),
    new Student('Bob', 20),
    new Student('Carol', 21),
    new Student('Dave', 21),
);

// 自定比较器,根据学生的年龄去除重复元素
$age_comparator = function($a, $b) {
    return $a->age == $b->age;
};

// 使用自定比较器去除重复元素
$unique_students = array_unique($students, SORT_REGULAR, $age_comparator);

// 打印唯一学生的姓名
foreach ($unique_students as $student) {
    echo $student->name . '<br>';
}

?>
登入後複製

輸出結果

Alice
Carol
登入後複製

以上是PHP 陣列去重時指定移除重複元素的依據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!