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] ) )
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);
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 :
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!