dongmu1390 2012-06-28 10:59 采纳率: 100%
浏览 70
已采纳

如何在PHP中以树格式返回多维数组键?

How can I return multidimensional array keys in tree format in PHP?

For example, if I have the following array:

$array = array ( 
    array (
        'name' => 'A', 
        'product' => array (
            'qty' => 1,
            'brand' => 'Tim'
        ), 
        'goods' => array (
            'qty' => 2
        ), 
        'brand' => 'Lin'
    ),
    array (
        'name' => 'B', 
        'product' => array (
            'qty' => 6,
            'brand' => 'Coff'
        ),
        'goods' => array (
            'qty' => 4
        ), 
        'brand' => 'Ji'
    )
);

How can I get a result like the following -- including no repeating of keys:

-name
-product
--qty
--brand
-goods
--qty
--brand
  • 写回答

3条回答 默认 最新

  • drip5880 2012-06-28 11:11
    关注

    With an unlimited depth you need a recursive function. I suppose you have the parents in $names and the childs in $children:

    function render_select($root=0, $level=-1) 
    {
        global $names, $children;
        if ($root != 0)
           echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
        foreach ($children[$root] as $child)
           render_select($child, $level+1);
    }
    

    This functions use useful because you can feed it with 2 variables. The other answere requires a multidimensional array.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题