php - 一个取数组键值得问题
迷茫
迷茫 2017-05-16 12:58:11
0
2
473
Array
(
    [1] => Array
        (
            [id] => 1
            [access_id] => 1
            [name] => 统计报表
            [module] => manage
            [parent_id] => 0
            [icon] => fa-dashboard
            [type] => menu
            [sort] => 0
            [status] => 1
            [access_name] => 统计报表
            [controller] => dashboard
            [action] => index
        )

    [2] => Array
        (
            [id] => 2
            [access_id] => 
            [name] => 个人中心
            [module] => manage
            [parent_id] => 0
            [icon] => fa-male
            [type] => menu
            [sort] => 1
            [status] => 1
            [access_name] => 
            [controller] => 
            [action] => 
            [_child] => Array
                (
                    [3] => Array
                        (
                            [id] => 3
                            [access_id] => 
                            [name] => 修改个人信息
                            [module] => manage
                            [parent_id] => 2
                            [icon] => 
                            [type] => menu
                            [sort] => 0
                            [status] => 1
                            [access_name] => 
                            [controller] => 
                            [action] => 
                        )

                )

        )

    [4] => Array
        (
            [id] => 4
            [access_id] => 
            [name] => 广告管理
            [module] => manage
            [parent_id] => 0
            [icon] => fa-th
            [type] => menu
            [sort] => 2
            [status] => 1
            [access_name] => 
            [controller] => 
            [action] => 
            [_child] => Array
                (
                    [5] => Array
                        (
                            [id] => 5
                            [access_id] => 
                            [name] => 广告位管理
                            [module] => manage
                            [parent_id] => 4
                            [icon] => 
                            [type] => menu
                            [sort] => 0
                            [status] => 1
                            [access_name] => 
                            [controller] => 
                            [action] => 
                            [_child] => Array
                                (
                                    [8] => Array
                                        (
                                            [id] => 8
                                            [access_id] => 
                                            [name] => 添加广告位
                                            [module] => manage
                                            [parent_id] => 5
                                            [icon] => 
                                            [type] => menu
                                            [sort] => 1
                                            [status] => 1
                                            [access_name] => 
                                            [controller] => 
                                            [action] => 
                                        )

                                    [7] => Array
                                        (
                                            [id] => 7
                                            [access_id] => 
                                            [name] => 广告位列表
                                            [module] => manage
                                            [parent_id] => 5
                                            [icon] => 
                                            [type] => menu
                                            [sort] => 2
                                            [status] => 1
                                            [access_name] => 
                                            [controller] => 
                                            [action] => 
                                        )

                                )

                        )

                    [6] => Array
                        (
                            [id] => 6
                            [access_id] => 
                            [name] => 广告内容管理
                            [module] => manage
                            [parent_id] => 4
                            [icon] => 
                            [type] => menu
                            [sort] => 1
                            [status] => 1
                            [access_name] => 
                            [controller] => 
                            [action] => 
                            [_child] => Array
                                (
                                    [9] => Array
                                        (
                                            [id] => 9
                                            [access_id] => 
                                            [name] => 广告列表
                                            [module] => manage
                                            [parent_id] => 6
                                            [icon] => 
                                            [type] => menu
                                            [sort] => 0
                                            [status] => 1
                                            [access_name] => 
                                            [controller] => 
                                            [action] => 
                                        )

                                    [10] => Array
                                        (
                                            [id] => 10
                                            [access_id] => 
                                            [name] => 添加广告
                                            [module] => manage
                                            [parent_id] => 6
                                            [icon] => 
                                            [type] => menu
                                            [sort] => 1
                                            [status] => 1
                                            [access_name] => 
                                            [controller] => 
                                            [action] => 
                                        )

                                )

                        )

                )

        )

)

上面是个数组,包含的是菜单的信息,可能有很多维,现在有一个问题是如果一个菜单的id位8,也就是索引为
$arr[4]['_child'][5]['_child'][8] 这个菜单,我如何通过写一个函数,返回一个数组,该数组包含了所有的索引值,比如id为8的这个菜单,返回 [4,5,8]

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(2)
过去多啦不再A梦

_child数组里面每个数组加一个父菜单id就可以了,然后通过索引一层一层读,否则你得for 循环一个数组一个数组的判断。效果太差

世界只因有你
    function EachTree(json, id) {
        var path = [];
        for (var i = 0; i < json.length; i++) {
            var arr = json[i], _id = arr["id"];
            path.push(_id);
            if (_id == id) {
                return path;
            }
            if (arr["_child"] && arguments.callee(arr["_child"], id)) {
                return path;
            }
        }
    }
    
    console.log(EachTree(json, 8));
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage