Ciao a tutti,
ho un problema da cui non riesco proprio ad uscire.
da venerdì.
Ho una struttura dati così:
Codice PHP:
---------------------------------
ID | ID_PARENT | NAME
---------------------------------
1 | 0 | Cat 1
---------------------------------
2 | 0 | Cat 2
---------------------------------
3 | 1 | Cat 1.1
---------------------------------
4 | 2 | Cat 2.1
---------------------------------
5 | 1 | Cat 1.2
---------------------------------
6 | 3 | Cat 1.1.1
---------------------------------
7 | 1 | Cat 1.3
---------------------------------
8 | 6 | Cat 1.1.1.1
---------------------------------
9 | 8 | Cat 1.1.1.1.1
---------------------------------
Ho costruito una funzione ricorsiva che dovrebbe prendere questa struttura multialbero e mostrarmela in un array multidimensionale.
La prima volta chiamo questa funzione da un'altra passandogli come $dataLevel il seguente array:
Array (
[1] => array(),
[2] => array()
)
Codice PHP:
public function getLevel($dataLevel, $level) {
if (count($dataLevel) > 0) {
foreach($dataLevel as $key => $value) {
$childrensDB = $this->getChildrens($key, $level);
if (count($childrensDB) > 0) {
for ($i=0; $i<count($childrensDB); $i++) {
$dataLevel[$key][$childrensDB[$i]['ID']] = array();
}
}
echo "<p style=\"text-indent : ".($level * 10)."px\">".$key."</p>";
$this->getLevel($dataLevel[$key], $level + 1);
}
}
return $dataLevel;
}
L'output dell'echo è corretto ed è il seguente:
Codice PHP:
1
3
6
8
9
5
7
2
4
L'output del return della funzione invece non è corretto ed è così:
Codice PHP:
Array (
[1] => Array (
[3] => Array ( )
[5] => Array ( )
[7] => Array ( )
)
[2] => Array (
[4] => Array ( )
)
)
Perchè mi arriva solo fino al primo livello e non va più in profondità??
Dove sbaglio??
Grazie a tutti