Sto tentando di impostare un elenco che può avere più livelli, utilizzando parentId
per definire il suo genitore. Il primo articolo parentId
è NULL. Esempio di alcune voci:Creazione di un array multilivello utilizzando parentIds in PHP
id parentId name
1 NULL item1
2 NULL item2
3 1 item3
4 2 item4
5 3 item5
6 3 item6
Così, 1 e 2 sono gli elementi principali; 3 è un bambino di 1; 4 è un bambino di 2; 5 è un figlio di 3 (che è figlio di 1 stesso); 6 è anche un figlio di 3 (che è figlio di 1 stesso); ecc.
Sono bloccato creando un array che aggiunge correttamente questi elementi ai livelli corretti. Esso dovrebbe essere simile a questo:
Array
(
[1] => Array
(
[name] => item1
[parentId] =>
[children] => Array
(
[3] => Array
(
[name] => item3
[parentId] => 1
[children] => Array
(
[5] => Array
(
[name] => item5
[parentId] => 3
)
[6] => Array
(
[name] => item6
[parentId] => 3
)
)
)
)
)
[2] => Array
(
[name] => item2
[parentId] =>
[children] => Array
(
[4] => Array
(
[name] => item4
[parentId] => 2
)
)
)
)
Ma dire che passare attraverso tutti gli elementi utilizzando foreach()
, e ottengo al punto 5. La sua parentId è 3, ma a quel punto, non ho idea di dove questo genitore 3 è situato nell'array e come aggiungere figli a quel genitore.
C'è un trucco per passare in rassegna questi articoli e metterli tutti sul posto nel modo giusto?
Grazie! Esattamente quello che stavo cercando. La parte ricorsiva era il trucco. – Alec
Molto buono! Ma questo diventa estremamente lento quando hai 20.000 set di dati e 10 livelli di profondità. – Sliq