Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 嵌套类别表HTML_Php_Html_Loops - Fatal编程技术网

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] =>

我想创建一个包含3个lvl类别的表:类别、子类别、子类别。这是数据库的输出,我只需要在php/html部分实现以下内容:

 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"=>[]
                ]
            ]

        ]
];