Comment dédupliquer efficacement un tableau multidimensionnel PHP basé sur une clé spécifique ?

DDD
Libérer: 2024-11-25 13:13:15
original
368 Les gens l'ont consulté

How to Efficiently Deduplicate a PHP Multi-Dimensional Array Based on a Specific Key?

Tableau multidimensionnel PHP : déduplication basée sur une valeur spécifique

Question :

Étant donné un tableau multidimensionnel, comment supprimer efficacement les sous-tableaux contenant des valeurs en double pour un objet particulier ? clé ?

Énoncé du problème :

Considérez le tableau multidimensionnel suivant :

Array
(
[0] => Array
    (
        [0] => dave
        [1] => jones
        [2] => [email protected]
    )

[1] => Array
    (
        [0] => john
        [1] => jones
        [2] => [email protected]

    )

[2] => Array
    (
        [0] => bruce
        [1] => finkle
        [2] => [email protected]
    )
)
Copier après la connexion

La tâche consiste à supprimer tous les sous-tableaux où l'adresse email (index 2) apparaît plus d'une fois. Dans cet exemple, cela entraînerait la suppression du premier ou du troisième sous-tableau.

Solution :

Une solution simple consiste à utiliser l'unicité du tableau pour éliminer les adresses e-mail en double. :

$newArr = array();
foreach ($array as $val) {
    $newArr[$val[2]] = $val;    
}
$array = array_values($newArr);
Copier après la connexion

Cette solution exploite le fait que les clés de tableau en PHP sont uniques. En utilisant l'adresse e-mail comme clé du tableau, cela garantit que seule la dernière occurrence d'une adresse e-mail particulière est conservée dans le tableau résultant.

En utilisant array_values() à la fin, nous réinitialisons les index du tableau à numéros consécutifs, tout en conservant les données dédupliquées.

Remarque :

  1. La solution présentée donne la priorité aux derniers occurrence de l'adresse e-mail. Si vous préférez donner la priorité à la première occurrence, inversez l'ordre du tableau avant de le parcourir à l'aide de array_reverse().
  2. Les index du tableau résultant peuvent être réorganisés. Ce n'est pas un souci majeur si vous ne vous appuyez pas sur des index spécifiques.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal