将平面信息转换为多维数组PHP


convert flat information into multidimentional array PHP

我有一个从中获取数据的表,它创建了一个项目列表。

数据如下:

Menu1,Header
Menu2,MenuItem
Menu3,MenuItem
Menu4,MenuItem
Menu5,MenuItem
Menu6,Header
Menu7,MenuItem
Menu8,MenuItem
Menu9,MenuItem
Menu10,MenuItem
...

我的数组需要看起来像这样:

MenuHeader -> MenuItem
           -> MenuItem
           -> MenuItem
MenuHeader -> MenuItem
           -> MenuItem
           -> MenuItem

有什么想法吗?

以下是一些大致想法的代码。您需要对其进行调整以使用您的数据库和数据。如果可以的话,我建议避免这样做,并调整数据库以将MenuItems与它们各自的标题关联起来。

<?php
    $mysqli = new mysqli("localhost", "user","password","database", "3306"); 
    $query = "SELECT id, title, type FROM tbl_name";
    $result = $mysqli->query($query);
    $array1 = array();
    $currentHeading = "undefined";
    while($row = $result->fetch_assoc())
    {
        if($row['type'] == 'MenuHeader') {
            $array1[$row['title']] = array();
            $currentHeading = $row['title'];
        } else {
            $array1[$currentHeading][] = $row['title'];
        }
    }
?>