Php 嵌套类别表HTML
我想创建一个包含3个lvl类别的表:类别、子类别、子类别。这是数据库的输出,我只需要在php/html部分实现以下内容:Php 嵌套类别表HTML,php,html,loops,Php,Html,Loops,我想创建一个包含3个lvl类别的表:类别、子类别、子类别。这是数据库的输出,我只需要在php/html部分实现以下内容: Array ( [1] => Array ( [category_id] => 2 [0] => 2 [category_name] => Tutorials [1] =>
Array
(
[1] => Array
(
[category_id] => 2
[0] => 2
[category_name] => Tutorials
[1] => Tutorials
[category_link] => #
[2] => #
[parent_id] => 0
[3] => 0
[sort_order] => 1
[4] => 1
[subcategories] => Array
(
[0] => Array
(
[category_id] => 3
[0] => 3
[category_name] => Java
[1] => Java
[category_link] => java
[2] => java
[parent_id] => 2
[3] => 2
[sort_order] => 1
[4] => 1
[subcategories] => Array
(
[0] => Array
(
[category_id] => 18
[0] => 18
[category_name] => Jquery Tut
[1] => Jquery Tut
[category_link] => jquerytut
[2] => jquerytut
[parent_id] => 3
[3] => 3
[sort_order] => 3
[4] => 3
[subcategories] => Array
(
)
)
)
)
)
)
[2] => Array
(
[category_id] => 5
[0] => 5
[category_name] => Frameworks
[1] => Frameworks
[category_link] => #
[2] => #
[parent_id] => 0
[3] => 0
[sort_order] => 2
[4] => 2
[subcategories] => Array
(
[0] => Array
(
[category_id] => 9
[0] => 9
[category_name] => Hibernate
[1] => Hibernate
[category_link] => hibernate
[2] => hibernate
[parent_id] => 5
[3] => 5
[sort_order] => 2
[4] => 2
[subcategories] => Array
(
)
)
)
)
[4] => Array
(
[category_id] => 13
[0] => 13
[category_name] => Contact
[1] => Contact
[category_link] => contact
[2] => contact
[parent_id] => 0
[3] => 0
[sort_order] => 4
[4] => 4
[subcategories] => Array
(
)
)
)
像这样的
|CategoryName | Link | more |
|-- SubcategoryName | Link | more |
|--- SubSubcategoryName | Link | more |
等
我已经为此挣扎了几个小时,似乎我无法完成它
代码:
foreach($array=>$innerArray的类别):
$table.=''.$INNERRARY['category_name'];
foreach($innerArray['subcategories']作为$subc=>$subc\u数组):
$table.=$subc_数组['category_name'];
endforeach;
$table.=”;
endforeach;
echo$表;
一个好的解决方案是递归函数。例如:
echo "<table>".get_rows($category, 0)."</table>";
function get_rows($arr, $lvl){
$html = '';
foreach ($arr as $array => $innerArray){
$html .= '<tr><td style="padding-left:'.($lvl*30).'px;">'.$innerArray['category_name'].'</td>';
$html .= '<td>'.$innerArray['category_link'].'</td></tr>';
if(isset($innerArray['subcategories'])){
$html .= get_rows($innerArray['subcategories'], $lvl+1);
}
}
return $html;
}
这是我使用的输入:
$category = [
[
"category_name"=>"cat1",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat11",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat12",
"category_link"=>"c1link",
"subcategories"=>[]
]
],
],
[
"category_name"=>"cat2",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat21",
"category_link"=>"c1link",
"subcategories"=>[[
"category_name"=>"cat211",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat212",
"category_link"=>"c1link",
"subcategories"=>[[
"category_name"=>"cat2121",
"category_link"=>"c1link",
"subcategories"=>[]
]]
]]
],
[
"category_name"=>"cat22",
"category_link"=>"c1link",
"subcategories"=>[]
]
]
],
[
"category_name"=>"cat3",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat31",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat32",
"category_link"=>"c1link",
"subcategories"=>[]
]
]
]
];
你是最棒的。我爱你,即使是垫子也很好用。非常感谢你!
cat1 clink
cat11 clink
cat12 clink
cat2 clink
cat21 clink
cat211 clink
cat212 clink
cat2121 clink
cat22 clink
cat3 clink
cat31 clink
cat32 clink
$category = [
[
"category_name"=>"cat1",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat11",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat12",
"category_link"=>"c1link",
"subcategories"=>[]
]
],
],
[
"category_name"=>"cat2",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat21",
"category_link"=>"c1link",
"subcategories"=>[[
"category_name"=>"cat211",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat212",
"category_link"=>"c1link",
"subcategories"=>[[
"category_name"=>"cat2121",
"category_link"=>"c1link",
"subcategories"=>[]
]]
]]
],
[
"category_name"=>"cat22",
"category_link"=>"c1link",
"subcategories"=>[]
]
]
],
[
"category_name"=>"cat3",
"category_link"=>"c1link",
"subcategories"=> [
[
"category_name"=>"cat31",
"category_link"=>"c1link",
"subcategories"=>[]
],
[
"category_name"=>"cat32",
"category_link"=>"c1link",
"subcategories"=>[]
]
]
]
];