Maison  >  Article  >  développement back-end  >  Spécifiez la base de suppression des éléments en double lors de la déduplication des tableaux PHP

Spécifiez la base de suppression des éléments en double lors de la déduplication des tableaux PHP

WBOY
WBOYoriginal
2024-04-28 22:48:02826parcourir

La fonction array_unique() de PHP est utilisée pour supprimer les éléments en double d'un tableau. Elle utilise l'égalité stricte (===) par défaut. Nous pouvons spécifier la base de la déduplication via une fonction de comparaison personnalisée : créez une fonction de comparaison personnalisée et spécifiez la norme de déduplication (par exemple, en fonction de la longueur de l'élément) ; transmettez la fonction de comparaison personnalisée comme troisième paramètre à la fonction array_unique(). dupliquer des éléments en fonction de critères spécifiés.

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

Utilisez la fonction PHP array_unique() pour spécifier la base de la déduplication

Introduction

_unique() La fonction est utilisée pour supprimer les éléments en double d'un tableau. Par défaut, il utilise l'égalité stricte (===) pour déterminer les éléments en double. Cependant, nous pouvons supprimer les éléments en double en fonction de différents critères en fournissant une fonction de comparaison personnalisée pour spécifier la base de la déduplication. _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()

Exemple de code

<?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>';
}

?>

🎜Résultats de sortie🎜🎜
Alice
Carol
🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons un tableau d'objets étudiants, chaque objet a un nom et un âge. Nous pouvons utiliser la fonction _unique() et un comparateur personnalisé pour supprimer les étudiants du même âge : 🎜rrreee🎜🎜Résultat de sortie🎜🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn