tableau multidimensionnel différence php
J'ai deux tableaux multidimensionnels et je veux la différence. Pour eg. J'ai pris deux dimensions deux tableaux ci-dessous
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[b1] => Array (
[b_name] => bbbbb
[b_value] => bbb
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
$array2 = Array (
[b1] => Array (
[b_name]=> zzzzz
)
)
Maintenant, je veux la clé de la différence de ces deux tableaux. J'ai essayé array_diff_key (), mais elle n'est pas travailler pour multidimensionnelle.
array_diff_key($array1, $array2)
Je veux de la sortie comme suit
//output
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[b1] => Array (
[b_value] => bbb
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
Si vous pensez que ma question est authentique s'il vous plaît accepter et de répondre. Merci.
MODIFIER
Maintenant, si le deuxième tableau est
$array2 = Array( [b1] => zzzzz)
Le résultat devrait être
$array1 = Array (
[a1] => Array (
[a_name] => aaaaa
[a_value] => aaa
)
[c1] => Array (
[c_name] => ccccc
[c_value] => ccc
)
)
À votre sortie, vous n'êtes pas comparer, mais de remplacer
Je veux que la différence des deux tableau. Le résultat attendu est la différence entre les deux tableau, et non à remplacer.
Si, à partir de 14 réponses aucun de résoudre des problèmes, vous pourriez vouloir reconsidérer votre style d'écriture à une question!
Nous supposons que vos questios étaient comme
Où en sommes-14 réponses? @Yoshi
b1
. Que voulez-vous vraiment?Je veux que la différence des deux tableau. Le résultat attendu est la différence entre les deux tableau, et non à remplacer.
Si, à partir de 14 réponses aucun de résoudre des problèmes, vous pourriez vouloir reconsidérer votre style d'écriture à une question!
Nous supposons que vos questios étaient comme
here is my task: ... - Can you make it for me please
. Ce n'est pas un endroit où les gens de faire quelque chose pour vous. Nous supposons que quelques idées.Où en sommes-14 réponses? @Yoshi
OriginalL'auteur kcssm | 2012-09-03
Vous devez vous connecter pour publier un commentaire.
Veuillez vérifier si je vous comprends bien alors cet extrait de code, peut vous aider à résoudre votre problème. Je l'ai testé pendant votre problème. si il y a d'autres cas de tests pour lequel vous souhaitez exécuter, vous pouvez me dire modifier le code.
EDIT: ajout de bidouiller le code.
$a2 = 'zzzzz'
je veux que le résultat soit$a1 = array('a1' => array('a_name' => 'aaa', 'a_value' => 'aaaaa'), 'c1' => array('c_name' => 'ccc', 'c_value' => 'cccccc') );
Depuis les tableaux dans mon cas sont de plusieurs niveaux. J'ai essayé de bidouiller mais je ne suis pas en mesure d'obtenir le résultat que je voulais. Espérons que vous avez compris mon problème. Je vous remercie encore une fois pour toutes l'aide. J'ai vraiment l'apprécier.merci d'éditer votre question et ajouter votre cas d'utilisation, de mise en forme appropriée de sorte que je peux le comprendre correctement. Merci.
Il n'est pas un travail pour les touches avec une valeur vide.
Thats droit. J'ai ajouté un meilleur travail de la fonction (voir ma réponse ci-dessus)
thiw de travail dans une seule direction, c'est à dire si le tableau1 est plus "grand" que les autres?
OriginalL'auteur Zaheer Abbass
cette solution ah été très utile pour moi, j'espère pouvez les aider en quelque chose, n'importe ce que le tableau sont dans le désarroi.
OriginalL'auteur Jonny Alexander
Il y a beaucoup de cas où la réponse d'origine ne fonctionne pas correctement, j'ai donc écrit une meilleure solution. L'un des problèmes, c'est que si vous avez supprimé une propriété dans le tableau 2, les autres fonctions ne l'ai pas reconnu.
J'ai également ajouté des cas de test à vérifier le résultat:
Comme vous pouvez le voir, mes fonctions garantit de meilleurs résultats.
''
et un autre estNULL
OriginalL'auteur bernhardh
Je sais que ce fil est une sorte de vieux, cependant j'ai rencontré quelques problèmes avec la solution d'origine. Voici donc ma solution du problème.
Problèmes Rencontrés /Fixe
OriginalL'auteur Augwa
Presque une copie de @bernhardh de répondre, mais de poster ici parce que mon montage a été rejetée. Utilise + au lieu de array_merge comme array_merge sera réindexer tableau à l'origine de problèmes avec les tableaux indexés.
OriginalL'auteur mikeytown2
Un petit tweak pour @Zaheer Abbass solution, j'ai obtenu le résultat que je voulais. Merci beaucoup Zaheer. Voici le dernier code que j'ai utilisé.
OriginalL'auteur kcssm
Donc si vous avez des tableaux avec des valeurs vides ou avec des tableaux vides.
OriginalL'auteur fdrv
La solution nécessite recursing valeurs de tableau, qui peuvent eux-mêmes être des tableaux.
OriginalL'auteur Faiz Mohamed Haneef
Essayez de la fonction:
Résultat:
OriginalL'auteur Lebnik
Pour les tableaux multidimensionnels,
array_diff_assoc
fonctionne mieux quearray_diff
dans certains cas. J'ai eu un problème avecarray_diff
où il n'était pas en mesure de différencier entre 1 ou 0 comme valeur ( peut-être certains autres indice avait même valeur ), de sortearray_diff_assoc
résolu comme il vérifie ainsi les index. Seulement pour l'avenir, les utilisateurs qui pourraient rencontrer le même problème.OriginalL'auteur Abdul Mannan
OriginalL'auteur Alex Rabinovich