我得到了一个当前echo结果的递归函数。我希望这个函数返回结果并使用foreach内部标记循环它们。
我知道我应该对每个数组使用某种迭代来获得我想要的结果,但失败了。目前我的代码看起来像这样(尝试迭代):
public static function recursiveChildCategory($categories = array(), $depth = 0, $i = 0) {
$ca = [];
// Loop through categories
foreach($categories as $key => $category){
echo str_repeat(" ", $depth);
echo "<a href='".implode('/', $category['breadcrumb'])."'>{$category['title']}</a>";
echo '<br>';
$ca[$i] = [
'id' => $category['id'],
'title' => $category['title'],
];
if(isset($category['child'])) {
// Loop
self::recursiveChildCategory($category['child'], $depth + 1, $i++);
}
}
return $ca;
}
和传入数组到函数:
Array (
[0] => Array (
[id] => 7
[title] => Deserts
[slug] => deserts
[child] => Array (
[0] => Array (
[id] => 8
[title] => Space
[slug] => space
[child] => Array (
[0] => Array (
[id] =>
[title] =>
[slug] =>
[child] => Array ( )
)
)
)
)
)
)
目前它只返回第一级子类别“沙漠”,但不返回“空间”。
作为期望的结果,我希望函数返回所有类别$depth和多个子类别的无限路径(与当前echo做的工作相同)。