Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tentukan asas untuk mengalih keluar elemen pendua apabila menyahduplikasi tatasusunan PHP

Tentukan asas untuk mengalih keluar elemen pendua apabila menyahduplikasi tatasusunan PHP

WBOY
WBOYasal
2024-04-28 22:48:02889semak imbas

Fungsi array_unique() PHP digunakan untuk mengalih keluar elemen pendua daripada tatasusunan Ia menggunakan kesamaan yang ketat (===) secara lalai. Kami boleh menentukan asas untuk penyahduplikasian melalui fungsi perbandingan tersuai: buat fungsi perbandingan tersuai dan tentukan standard deduplikasi (contohnya, berdasarkan panjang elemen lulus fungsi perbandingan tersuai sebagai parameter ketiga kepada fungsi array_unique(). elemen pendua berdasarkan kriteria yang ditetapkan. . Secara lalai, ia menggunakan kesaksamaan yang ketat (===) untuk menentukan unsur pendua. Walau bagaimanapun, kami boleh mengalih keluar elemen pendua berdasarkan kriteria yang berbeza dengan menyediakan fungsi perbandingan tersuai untuk menentukan asas penduaan.

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

<?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));

?>
Hasil keluaran

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [4] => d
    [6] => e
)
Kes praktikal

_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

实战案例

假设我们有一个学生对象的数组,每个对象都有一个名字和年龄。我们可以使用 _unique()Andaikan kita mempunyai susunan objek pelajar, setiap objek mempunyai nama dan umur. Kita boleh menggunakan fungsi _unique() dan pembanding tersuai untuk mengalih keluar pelajar yang mempunyai umur yang sama:

rrreee

hasil keluaran

rrreee

Atas ialah kandungan terperinci Tentukan asas untuk mengalih keluar elemen pendua apabila menyahduplikasi tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn