PHP: Vérifier les doublons dans un tableau multidimensionnel
J'ai ce problème avec les tableaux multidimensionnels.
Le suivant tableau multidimensionnel:
Array(
[0] => Array("a", "b", "c")
[1] => Array("x", "y", "z")
[2] => Array("a", "b", "c")
[3] => Array("a", "b", "c")
[4] => Array("a", "x", "z")
)
Je veux vérifier ses valeurs et de trouver des doublons (c'est à dire les touches 0, 2 et 3), laissant seulement une paire clé - valeur en supprimant les autres, ce qui aboutit à quelque chose comme ceci:
Array(
[0] => Array("a", "b", "c")
[1] => Array("x", "y", "z")
[2] => Array("a", "x", "z")
)
Comment puis-je faire??
Essayez de http://php.net/manual/en/function.array-unique.php il devrait vous aider.
OriginalL'auteur Maldoror | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Cela permettra de supprimer les doublons d'articles à partir de votre tableau à l'aide de
array_unique()
:Regarder les docs. Je suis à l'aide de la
SORT_REGULAR
drapeau qui n'utilise PAS de comparaison de chaînes de caractères.comme par php document "Note que array_unique() n'est pas conçue pour fonctionner sur les multiples dimensions des tableaux.". Il peut être vu à partir du lien donné.
Je pense que cela signifie simplement que
array_unique
ne pas aplatir le tableau pour trouver les uniques. (btw, +1)La pensée array_unique ne fonctionne pas avec les tableaux multidimensionnels.
OriginalL'auteur Tim Cooper
Vous pouvez le faire simplement en utilisant in_array()
qui va vous arriver quelque chose comme
OriginalL'auteur JF Dion
Vous pouvez aller à puce avec la sérialisation pour la comparaison des tableaux.
Avoir du plaisir
OriginalL'auteur Gediminas
C'est plus efficace1 la solution (log n + n au lieu de quadratique), mais il s'appuie sur un ordre total entre tous les éléments de la matrice, ce qui vous ne pouvez pas avoir (par exemple, si l'intérieur des tableaux avoir des objets).
1 de Plus efficace que d'utiliser des
in_array
. S'avèrearray_unique
utilise cet algorithme, il a les mêmes défauts.OriginalL'auteur Artefacto
À vérifier à l'aide de array_unique sur les tableaux multidimensionnels, vous devez l'aplatir comme si, à l'aide d'imploser.
Espère que cela est utile, a pris quelque temps pour l'obtenir.
〓
?OriginalL'auteur Mrdexed