Comment utiliser array_unique sur un tableau de tableaux?
J'ai un tableau
Array(
[0] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[1] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[2] => Array
(
[0] => 33
[user_id] => 33
[1] => 8
[frame_id] => 8
)
[3] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
[4] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
)
Comme vous pouvez le voir la touche 0 est le même que le 1, 3 et 4. Et la clé 2 est différent de tous.
Lors de l'exécution de la fonction array_unique sur eux, la seule gauche est
Array (
[0] => Array
(
[0] => 33
[user_id] => 33
[1] => 3
[frame_id] => 3
)
)
des idées pourquoi array_unique ne fonctionne pas comme prévu?
source d'informationauteur dotty
Vous devez vous connecter pour publier un commentaire.
C'est parce que
array_unique
compare les éléments à l'aide d'une comparaison de chaînes de caractères. À partir de la docs:La représentation sous forme de chaîne d'un tableau est simplement le mot
Array
quelle que soit son contenu.Vous pouvez faire ce que vous voulez faire en utilisant les éléments suivants:
Voici comment cela fonctionne:
Chaque élément de tableau est sérialisé. Cette
sera unique basé sur le tableau de
contenu.
Les résultats de cette aide
array_unique
donc seulement des tableaux uniques
les signatures sont à gauche.
array_intersect_key
prendrales clés des objets uniques à partir de
la carte/fonction unique (puisque la source de la matrice de touches sont conservés) et tirez
hors de votre source d'origine
tableau.
array_unique()
prend uniquement en charge les multi-dimensions des tableaux en PHP 5.2.9 et plus.Au lieu de cela, vous pouvez créer une table de hachage de la matrice et en vérifier l'unique-ness.
Voici une version améliorée de @ryeguy réponse:
Tout d'abord, il ne fait pas inutile de sérialisation. Deuxièmement, parfois, les attributs peuvent être différentes, même si l'id est le même.
J'ai couru avec Les Lieux de Google API. J'ai été à combiner les résultats de plusieurs demandes auprès de différents types d'objets (pensez aux balises). Mais j'ai eu des doublons, car un objet peut être mis en plusieurs catégories (types). Et la méthode avec
serialize
ne fonctionne pas, depuis le attrs étaient différents, à savoir,photo_reference
etreference
. Probablement ce sont comme les id temporaires.array_unique deosn fonctionne pas récursive, jusqu'à ce qu'il pense", ce sont tous les
Array
s, nous allons tuer tous, mais... nous y voilà!"Réponse rapide (TL;DR)
Réponse Détaillée
Contexte
Problème
fname
paire nom-valeurSolution
example01 ;; DeveloperMarsher commence avec un tabluar variable de données qui ressemble à ce
example01 ;; DeveloperMarsher peut extraire des valeurs distinctes avec une boucle foreach qui suit vu valeurs
Résultat de sortie
Pièges
Voir aussi