Rubberick
19-04-2008, 09:36
Devo implementare una funzione ricorsiva che cerchi utilizzando due liste quali sono tutti gli id figlio associati al padre...
Solo vorrei una mano da voi a farla con il minor dispendio di risorse possibile...
Ho un array realizzato cosi':
Array
(
[0] => Array
(
[id] => 1
[parent_id] => 893
)
[1] => Array
(
[id] => 909
[parent_id] => 8
)
[2] => Array
(
[id] => 1113
[parent_id] => 909
)
[3] => Array
(
[id] => 910
[parent_id] => 8
)
[4] => Array
(
[id] => 907
[parent_id] => -1
)
[5] => Array
(
[id] => 8
[parent_id] => -1
)
..........
)
La funzione, chiamiamola getIDs presuppone io voglia partire da un qualsiasi id ad esempio id 8 e vedere quali figli e sottofigli ha...
Come risposta vorrei un array con tutti i valori trovati, anche fregandomene di riportare la gerarchicità degli elementi...
es: nel caso dei dati di sopra cercando 8 avrei
getIDs(8) mi da come risultato
Array (
[0] => 8 // come primo valore ricopio l'id principale
[1] => 909 // figlio di 8
[2] => 910 // figlio di 8
[3] => 1113 // che e' figlio di 909
)
Come posso implementare questa funzione ricorsiva in modo semplice? =) ciao
Solo vorrei una mano da voi a farla con il minor dispendio di risorse possibile...
Ho un array realizzato cosi':
Array
(
[0] => Array
(
[id] => 1
[parent_id] => 893
)
[1] => Array
(
[id] => 909
[parent_id] => 8
)
[2] => Array
(
[id] => 1113
[parent_id] => 909
)
[3] => Array
(
[id] => 910
[parent_id] => 8
)
[4] => Array
(
[id] => 907
[parent_id] => -1
)
[5] => Array
(
[id] => 8
[parent_id] => -1
)
..........
)
La funzione, chiamiamola getIDs presuppone io voglia partire da un qualsiasi id ad esempio id 8 e vedere quali figli e sottofigli ha...
Come risposta vorrei un array con tutti i valori trovati, anche fregandomene di riportare la gerarchicità degli elementi...
es: nel caso dei dati di sopra cercando 8 avrei
getIDs(8) mi da come risultato
Array (
[0] => 8 // come primo valore ricopio l'id principale
[1] => 909 // figlio di 8
[2] => 910 // figlio di 8
[3] => 1113 // che e' figlio di 909
)
Come posso implementare questa funzione ricorsiva in modo semplice? =) ciao