想架构一个嵌套数组,以输出JSON供前台页面级联菜单使用,但始终无法实现,求教。
大致结构如下:
商品[commod]
  |-饮料类[drink](clsID,clsName)
  |    |-碳酸饮料[sodas](itemID,itemName)
  |    |-果汁饮料[juice](itemID,itemName)
  |
  |-食品类[food](clsID,clsName)
       |-生鲜[fresh](itemID,itemName)
       |-熟食[cooked](itemID,itemName)
原先写了一个,但没有出来效果<?php
    /**/
    $tmparr[] = array('ClsID'=>'01','ClsName'=>'饮料类');
    array_push($tmparr[0],array('ItemID'=>'0000','ItemName'=>'碳酸饮料','ItemRate'=>'100%'));
    array_push($tmparr[0],array('ItemID'=>'0001','ItemName'=>'果汁饮料','ItemRate'=>'100%'));    $tmparr[] = array('ClsID'=>'02','ClsName'=>'食品类');
    $tmp[]=array('ItemID'=>'0101','ItemName'=>'生鲜','ItemRate'=>'3%');
    $tmp[]=array('ItemID'=>'0102','ItemName'=>'熟食','ItemRate'=>'3%');
    array_push($tmparr[1],$tmp);
    
    $json_str=json_encode($tmparr);
    //print_r($tmparr);
    echo $json_str;
?>
架构JSON

解决方案 »

  1.   

    出来的是这个效果
    -------------------------Array
    (
        [0] => Array
            (
                [ClsID] => 01
                [ClsName] => 饮料类
                [0] => Array
                    (
                        [ItemID] => 0000
                        [ItemName] => 碳酸饮料
                        [ItemRate] => 100%
                    )            [1] => Array
                    (
                        [ItemID] => 0001
                        [ItemName] => 果汁饮料
                        [ItemRate] => 100%
                    )        )    [1] => Array
            (
                [ClsID] => 02
                [ClsName] => 食品类
                [0] => Array
                    (
                        [0] => Array
                            (
                                [ItemID] => 0101
                                [ItemName] => 生鲜
                                [ItemRate] => 3%
                            )                    [1] => Array
                            (
                                [ItemID] => 0102
                                [ItemName] => 熟食
                                [ItemRate] => 3%
                            )                )        ))
      

  2.   

    想实现是这个嵌套数组,特别节点需要一个键值
    ---------------------------------------------[clslst]Array
    (
        [drink] => Array
            (
                [ClsID] => 01
                [ClsName] => 饮料类
                [sodas] => Array
                    (
                        [ItemID] => 0000
                        [ItemName] => 碳酸饮料
                        [ItemRate] => 100%
                    )            [juice] => Array
                    (
                        [ItemID] => 0001
                        [ItemName] => 果汁饮料
                        [ItemRate] => 100%
                    )        )    [food] => Array
            (
                [ClsID] => 02
                [ClsName] => 食品类
                [fresh] => Array
                    (
                        [ItemID] => 0101
                        [ItemName] => 生鲜
                        [ItemRate] => 3%
                    )            [cooked] => Array
                    (
                        [ItemID] => 0102
                        [ItemName] => 熟食
                        [ItemRate] => 3%
                    )        ))
      

  3.   

    求教xuzuning版主指点了,PHP学习得不是很熟悉
      

  4.   


    <?php
        /**/
        $tmparr[] = array('ClsID'=>'01','ClsName'=>'饮料类');  // [drink] 
        array_push($tmparr[0],array('ItemID'=>'0000','ItemName'=>'碳酸饮料','ItemRate'=>'100%'));  //[sodas]
        array_push($tmparr[0],array('ItemID'=>'0001','ItemName'=>'果汁饮料','ItemRate'=>'100%'));  //[juice]
     
        $tmparr[] = array('ClsID'=>'02','ClsName'=>'食品类');  //[food]
        $tmp[]=array('ItemID'=>'0101','ItemName'=>'生鲜','ItemRate'=>'3%');  //[fresh]
        $tmp[]=array('ItemID'=>'0102','ItemName'=>'熟食','ItemRate'=>'3%');  //[cooked]
        array_push($tmparr[1],$tmp);
         
        $json_str=json_encode($tmparr);
        //print_r($tmparr);
        echo $json_str;
    ?>
      

  5.   

    那你直接写上不就得了    $tmparr['drink'] = array('ClsID'=>'01','ClsName'=>'饮料类');  // [drink] 
        $tmparr['drink']['sodas'] = array('ItemID'=>'0000','ItemName'=>'碳酸饮料','ItemRate'=>'100%');  //[sodas]
        $tmparr['drink']['juice'] = array('ItemID'=>'0001','ItemName'=>'果汁饮料','ItemRate'=>'100%');  //[juice]
      
        $tmparr['food'] = array('ClsID'=>'02','ClsName'=>'食品类');  //[food]
        $tmparr['food']['fresh'] = array('ItemID'=>'0101','ItemName'=>'生鲜','ItemRate'=>'3%');  //[fresh]
        $tmparr['food']['cooked'] = array('ItemID'=>'0102','ItemName'=>'熟食','ItemRate'=>'3%');  //[cooked]