PHP - Trouver la clé de parent de tableau
J'essaie de trouver un moyen de retourner la valeur d'un tableau est la clé de parent.
Par exemple, à partir du tableau ci-dessous, je voudrais trouver le parent clé où $array['id'] == "0002".
La clé parent est évidente, car il est défini ici (ce serait "produits"), mais normalement, il serait dynamique, d'où le problème. La 'id' et la valeur de " id " est bien connu.
[0] => Array
(
[data] =>
[id] => 0000
[name] => Swirl
[categories] => Array
(
[0] => Array
(
[id] => 0001
[name] => Whirl
[products] => Array
(
[0] => Array
(
[id] => 0002
[filename] => 1.jpg
)
[1] => Array
(
[id] => 0003
[filename] => 2.jpg
)
)
)
)
)
OriginalL'auteur Jay Are | 2010-03-24
Vous devez vous connecter pour publier un commentaire.
Un peu brut de la récursivité, mais il devrait fonctionner:
$parent
argument que vous utilisez. Est de toute façon mieux?serait probablement très bien. Je dois admettre que je ne suis pas beaucoup d'une
static
de l'utilisateur. 🙂 Il faudrait éliminer le besoin de passer le long de la variable supplémentaire. Otoh, que, dans la fonction ci-dessus, vous pouvez spécifier un "défaut" de parent... Soit on est d'accord, je suppose. 🙂Merci, je comprends les avantages de votre méthode. +1
Je suis curieux, est-il une meilleure structure de données à utiliser à la place d'un tableau, si on a ce besoin? Il a été un long temps depuis que j'ai eu quelques bons programmes de formation, mais serait une Liste Liée à mieux travailler? De cette façon, vous n'avez pas à rechercher à travers un tableau à chaque fois que vous voulez un parent (penser à son retour chaque parent d'un enfant jusqu'à la racine). Cependant, je n'ai pas encore vraiment utiliser des listes de PHP. Peut-être qu'ils ne sont pas si faciles à faire?
OriginalL'auteur deceze
Puisque vous avez une arborescence, soit en une BFS ou DFS peut le faire. Puisque la structure est variable d'une solution récursive serait bien travailler. Il suffit de retourner une sentinelle lorsque vous trouvez la valeur, puis retourner la clé de l'appelant.
OriginalL'auteur Ignacio Vazquez-Abrams
OriginalL'auteur chla