php遞歸處理多維數組

$a =array (
    'menu' =>
        array (
            0 =>
                array (
                    'id' => 1,
                    'name' => '輿情概況',
                ),
            1 =>
                array (
                    'id' => 2,
                    'name' => '輿情動態',
                ),
            2 =>
                array (
                    'id' => 3,
                    'name' => '輿情分析',
                ),
            3 =>
                array (
                    'id' => 4,
                    'name' => '輿情預警',
                ),
            4 =>
                array (
                    'id' => 5,
                    'name' => '輿情報告',
                ),
            5 =>
                array (
                    'id' => 6,
                    'name' => '微博輿情',
                ),
            6 =>
                array (
                    'id' => 10,
                    'name' => '我的收藏',
                ),
            7 =>
                array (
                    'id' => 11,
                    'name' => '話題追蹤',
                ),
        ),
    'config' =>
        array (
            0 =>
                array (
                    'id' => 1001,
                    'name' => '菜單設置',
                    'url' => 'api/menu/menuList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1013,
                                    'name' => '菜單列表',
                                    'parent_id' => 1001,
                                    'url' => 'api/menu/menuList',
                                ),
                            1 =>
                                array (
                                    'id' => 1014,
                                    'name' => '添加/修改',
                                    'parent_id' => 1001,
                                    'url' => 'api/menu/menuSave',
                                ),
                            2 =>
                                array (
                                    'id' => 1031,
                                    'name' => '菜單刪除',
                                    'parent_id' => 1001,
                                    'url' => 'api/menu/menuDel',
                                ),
                            3 =>
                                array (
                                    'id' => 1015,
                                    'name' => '模塊管理',
                                    'parent_id' => 1001,
                                    'url' => 'api/model/menuList',
                                ),
                            4 =>
                                array (
                                    'id' => 1016,
                                    'name' => '模塊添加/修改',
                                    'parent_id' => 1001,
                                    'url' => 'api/model/menuSave',
                                ),
                        ),
                ),
            1 =>
                array (
                    'id' => 1002,
                    'name' => '關鍵詞設置',
                    'url' => 'api/keyword/keywordList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1017,
                                    'name' => '關鍵詞類別設置',
                                    'parent_id' => 1002,
                                    'url' => 'api/keyword/classifyList',
                                ),
                            1 =>
                                array (
                                    'id' => 1018,
                                    'name' => '主題詞設置',
                                    'parent_id' => 1002,
                                    'url' => 'api/keyword/keywordList',
                                ),
                            2 =>
                                array (
                                    'id' => 1019,
                                    'name' => '標籤設置',
                                    'parent_id' => 1002,
                                    'url' => 'api/keyword/tagList',
                                ),
                        ),
                ),
            2 =>
                array (
                    'id' => 1003,
                    'name' => '報告設置',
                    'url' => 'api/report/reportList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1022,
                                    'name' => '添加報告',
                                    'parent_id' => 1003,
                                    'url' => 'api/report/reportSave',
                                ),
                            1 =>
                                array (
                                    'id' => 1023,
                                    'name' => '編輯報告',
                                    'parent_id' => 1003,
                                    'url' => 'api/report/reportSave',
                                ),
                            2 =>
                                array (
                                    'id' => 1032,
                                    'name' => '報告刪除',
                                    'parent_id' => 1003,
                                    'url' => 'api/report/reportDel',
                                ),
                        ),
                ),
            3 =>
                array (
                    'id' => 1004,
                    'name' => '預警設置',
                    'url' => 'api/warn/warnList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1024,
                                    'name' => '添加預警',
                                    'parent_id' => 1004,
                                    'url' => 'api/warn/warnSave',
                                ),
                            1 =>
                                array (
                                    'id' => 1025,
                                    'name' => '編輯預警',
                                    'parent_id' => 1004,
                                    'url' => 'api/warn/warnSave',
                                ),
                            2 =>
                                array (
                                    'id' => 1033,
                                    'name' => '預警刪除',
                                    'parent_id' => 1004,
                                    'url' => 'api/warn/warnDel',
                                ),
                        ),
                ),
            4 =>
                array (
                    'id' => 1005,
                    'name' => '角色管理',
                    'url' => 'api/role/roleList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1026,
                                    'name' => '添加/修改角色',
                                    'parent_id' => 1005,
                                    'url' => 'api/role/roleUpAdd',
                                ),
                        ),
                ),
            5 =>
                array (
                    'id' => 1033,
                    'name' => '站點設置',
                    'url' => 'api/site/siteList',
                ),
            6 =>
                array (
                    'id' => 1006,
                    'name' => '用戶管理',
                    'url' => 'api/user/userList',
                    '_child' =>
                        array (
                            0 =>
                                array (
                                    'id' => 1028,
                                    'name' => '添加用戶',
                                    'parent_id' => 1006,
                                    'url' => 'api/user/userUpAdd',
                                ),
                            1 =>
                                array (
                                    'id' => 1029,
                                    'name' => '編輯用戶',
                                    'parent_id' => 1006,
                                    'url' => 'api/user/userUpAdd',
                                ),
                        ),
                ),
            7 =>
                array (
                    'id' => 1007,
                    'name' => '修改資料',
                    'url' => 'api/user/userModify',
                ),
            8 =>
                array (
                    'id' => 1008,
                    'name' => '操作日誌',
                    'url' => 'api/log/logList',
                ),
            9 =>
                array (
                    'id' => 1009,
                    'name' => '任務中心',
                    'url' => 'api/schedule/scheduleList',
                ),
            10 =>
                array (
                    'id' => 1032,
                    'name' => '輿情待辦',
                ),
            11 =>
                array (
                    'id' => 1030,
                    'name' => '回收站',
                ),
        ),
);



$b = array(
    0 => '1',
    1 => '2',
    2 => '3',
    3 => '4',
    4 => '5',
    5 => '6',
    6 => '1001',
    7 => '1013',
    8 => '1014',
    9 => '1002',
    10 => '1003'
);

echo "<pre>";
//print_r($a);
print_r($b);
$c = recursive_array($a['config'],$b);
//print_r($c);

$d = recursive_array($a['menu'],$b);
//print_r($d);


function recursive_array($config,$b){

   if( is_array($config) ){
      foreach($config as $key=>$val){

        
        if(is_array($val)){
           if(in_array($val['id'], $b)){
              $config[$key]['selected'] = 1;
           }else{
              $config[$key]['selected'] = 0;
           }


           if(isset($val['_child']) && is_array($val['_child'])){
              $config[$key]['_child'] = recursive_array($val['_child'],$b);
           }
           
            
        }



      }
   }
   return $config;


}

$new_a = [
  'menu'=>$d,
  'config'=>$c
];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章