我正在尝试为多个子类别创建一个嵌套函数,并且我有以下包含类别和子类别的数组。
Array
(
[0] => Array
(
[id] => 1
[parent_id] => 0
[name] => Women
)
[1] => Array
(
[id] => 6
[parent_id] => 0
[name] => Men
)
[2] => Array
(
[id] => 4
[parent_id] => 1
[name] => Child of women 3
)
[3] => Array
(
[id] => 5
[parent_id] => 4
[name] => Child of "Child of women 3"
)
)
和下面的函数
private function categories($array, $parent_id = 0) {
$return = array();
foreach($array as $key => $val) {
if($val['parent_id'] == $parent_id) {
$return[$val['id']] = $val;
} else {
$return[$val['parent_id']]['children'][] = $val;
}
}
return $return;
}
现在它只适用于 1 个子类别,但我想要这个输出:
Women
--Child of women 3
----Child of "Child of women 3
Men
最佳答案
private function categories($array, $parent_id = 0) {
$textb = '';
foreach($array as $key => $val) {
if($val['parent_id'] == $parent_id) {
$current_id = $val['id'];
$textb .= '<li>' . $val['name'];
$categories = self::categories($array, $current_id);
if(isset($categories) && !empty($categories))
$textb .= '<ul>' . $categories . '</ul>';
$textb .= '</li>';
}
}
return $textb;
}
关于php - 类别的嵌套函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41101420/