我试图为多个子类别创建一个嵌套函数,我有以下数组和子类别。
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
答案 0 :(得分:1)
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;
}
答案 1 :(得分:0)
我管理了一些东西,但它看起来很奇怪而且有重复。
private function categories($array, $parent_id = 0) {
$return = array();
foreach($array as $key => $val) {
if($val['parent_id'] == $parent_id) {
$return[$val["id"]] = $val["name"];
$return[$val["id"]] = array_merge($return, self::categories($array, $val["id"]));
}
}
return $return;
}
Array
(
[1] => Array
(
[0] => Women
[1] => Array
(
[0] => Child of women 3
[1] => Array
(
[0] => Child of "Child of women 3"
)
)
)
[6] => Array
(
[0] => Array
(
[0] => Women
[1] => Array
(
[0] => Child of women 3
[1] => Array
(
[0] => Child of "Child of women 3"
)
)
)
[1] => Men
)
)
答案 2 :(得分:0)
试试这个:[请注意,我尝试了没有上课的单独文件。]
function categories($array, $parent_id = 0) {
$return = array();
foreach($array as $key => $val) {
if($val['parent_id'] == $parent_id) {
$return[$val["id"]] = categories($array, $val["id"]);
$return[$val["id"]]["name"] = $val["name"];
}
}
return $return;
}
它将为您提供如下输出:
Array
(
[1] => Array
(
[4] => Array
(
[5] => Array
(
[name] => Child of "Child of women 3"
)
[name] => Child of women 3
)
[name] => Women
)
[6] => Array
(
[name] => Men
)
)