J'ai la nouvelle gamme d'arbres:php obtenir des niveaux de tableau dans la récursion
$arr =
array(
'id' => 1431,
'children' => array(
1432 => array(
'id' => 1432,
'children' => array(
1433 => array(
'id' => 1433,
'children' => array(),
),
1434 => array(
'id' => 1434,
'children' => array(),
),
)
),
1435 => array(),
'id' => 1435,
'children' => array(
1436 => array(
'id' => 1436,
'children' => array(
1437 => array(
'id' => 1437,
'children' => array(),
),
1438 => array(
'id' => 1438,
'children' => array(),
),
1439 => array(
'id' => 1439,
'children' => array(),
),
),
),
),
),
);
Ma tâche pour obtenir tableau générations de ce tableau. Ma sortie devrait être la suivante:
Array(
[1] = Array(
[1432] = ...
[1435] = ...
),
[2] = Array(
[1433] = ...
[1434] = ...
[1436] = ...
),
[3] = Array(
[1437] = ...
[1438] = ...
[1439] = ...
),
)
Mais maintenant ma sortie l'autre (sans élément 1346):
Array(
[1] = Array(
[1432] = ...
[1435] = ...
),
[2] = Array(
[1433] = ...
[1434] = ...
),
[3] = Array(
[1437] = ...
[1438] = ...
[1439] = ...
),
)
Qu'est-ce qui ne va pas dans ma fonction?
public function getGenerations($userTree, $currGeneration = 0, $result = array())
{
print_r($userTree);
$currGeneration++;
if (!empty($userTree) && !empty($userTree['children'])) {
foreach($userTree['children'] as $k => $v) {
$currUser = $v;
unset($currUser['children']);
$result[$currGeneration][$k] = $currUser;
$result += $this->getGenerations($v, $currGeneration, $result);
}
}
return $result;
}
J'appelle cette fonction comme ceci: $res = getGenerations($arr);
Nous vous remercions à l'avance. Désolé pour mon anglais.
Merci. C'est une bonne réponse. – pltvs