Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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 从数组生成菜单和子菜单_Php_Arrays - Fatal编程技术网

Php 从数组生成菜单和子菜单

Php 从数组生成菜单和子菜单,php,arrays,Php,Arrays,从昨天开始我就一直在努力,今天我终于接近成功了 问题 我的PHP脚本挂起,我的意思是,它似乎无限循环,导致脚本挂起。数据库中只有11条记录 此函数循环遍历从generate_模块传递到函数中的数据数组,并生成菜单和子菜单 function module_keys($array = array(), $modules_parent = 0){ echo '<ul class="nav navbar-nav side-nav">'; foreach($array as $

从昨天开始我就一直在努力,今天我终于接近成功了

问题

我的PHP脚本挂起,我的意思是,它似乎无限循环,导致脚本挂起。数据库中只有11条记录

此函数循环遍历从generate_模块传递到函数中的数据数组,并生成菜单和子菜单

function module_keys($array = array(), $modules_parent = 0){
    echo '<ul class="nav navbar-nav side-nav">';
    foreach($array as $item){
        echo '<li>';
        echo '<a>';
        echo $item->modules_name;
        echo '</a>';
        module_keys($array, $item->modules_id);
        echo '</li>';
    }
    echo '</ul>';
}
这是数据库结构

问题在于:

    echo '</a>';
    module_keys($array, $item->modules_id);
    echo '</li>';
}
然后,您需要确保module_键中的函数调用传递子数组元素,以便可以构造子菜单

比如:

我希望这有帮助

注 我使用过数组,但看起来您使用的是对象,您可能需要将我的建议转换为对象,以便它看起来与您所做的相同

    echo '</a>';
    module_keys($array, $item->modules_id);
    echo '</li>';
}
function generate_module(){
    global $db;
    $array = array();
    $sql = "SELECT * FROM module";
    $query = $db->SELECT($sql);
    $array = $db->ROWS();

    //iterate over the menu items and get each of the child menu items
    //add them into the original array then pass that
    $newArray = array();
    foreach($array as $menuItem) {
        $submenu = //some additional query to collect the data
        $temp = array();
        $temp = $menuItem;
        $temp['submenu'] = $submenu;
    }

    module_keys($newArray, $modules_parent = 0);
}
module_keys($item['submenu'], $item->modules_id);