【问题标题】:Multdimensional array list多维数组列表
【发布时间】:2014-11-26 12:40:01
【问题描述】:

谁能帮我创建一个递归函数来打印出列表中的这个数组 ul>li>ul.children 等。谢谢! :)

Array
(
    [0] => Array
        (
            [id] => 139
            [title] => Young People
            [pid] => 0
            [live] => 1
            [displayOrder] => 255
            [custom1] => 
            [custom2] => 
            [custom3] => 
            [live_id] => 
            [lastUpdated] => 1411839635
            [owner_id] => 1
            [availableFrom] => 1411772400
            [availableUntil] => 
            [type] => catTypeOne
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 143
                            [title] => Leadership & Development
                            [pid] => 139
                            [live] => 0
                            [displayOrder] => 255
                            [custom1] => 
                            [custom2] => 
                            [custom3] => 
                            [live_id] => 
                            [lastUpdated] => 1411839613
                            [owner_id] => 
                            [availableFrom] => 1411839613
                            [availableUntil] => 
                            [type] => 
                            [children] => Array
                                (
                                )

                        )

                    [1] => Array
                        (
                            [id] => 144
                            [title] => Cat 1
                            [pid] => 139
                            [live] => 0
                            [displayOrder] => 255
                            [custom1] => 
                            [custom2] => 
                            [custom3] => 
                            [live_id] => 
                            [lastUpdated] => 1411840264
                            [owner_id] => 
                            [availableFrom] => 1411840264
                            [availableUntil] => 
                            [type] => 
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 145
                                            [title] => Cat 2
                                            [pid] => 144
                                            [live] => 0
                                            [displayOrder] => 255
                                            [custom1] => 
                                            [custom2] => 
                                            [custom3] => 
                                            [live_id] => 
                                            [lastUpdated] => 1411840268
                                            [owner_id] => 
                                            [availableFrom] => 1411840268
                                            [availableUntil] => 
                                            [type] => 
                                            [children] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [id] => 146
                                                            [title] => Cat 3
                                                            [pid] => 145
                                                            [live] => 0
                                                            [displayOrder] => 255
                                                            [custom1] => 
                                                            [custom2] => 
                                                            [custom3] => 
                                                            [live_id] => 
                                                            [lastUpdated] => 1411840274
                                                            [owner_id] => 
                                                            [availableFrom] => 1411840274
                                                            [availableUntil] => 
                                                            [type] => 
                                                            [children] => Array
                                                                (
                                                                )

                                                        )

                                                    [1] => Array
                                                        (
                                                            [id] => 147
                                                            [title] => Cat 4
                                                            [pid] => 145
                                                            [live] => 0
                                                            [displayOrder] => 255
                                                            [custom1] => 
                                                            [custom2] => 
                                                            [custom3] => 
                                                            [live_id] => 
                                                            [lastUpdated] => 1411840281
                                                            [owner_id] => 
                                                            [availableFrom] => 1411840281
                                                            [availableUntil] => 
                                                            [type] => 
                                                            [children] => Array
                                                                (
                                                                )

                                                        )

                                                    [2] => Array
                                                        (
                                                            [id] => 148
                                                            [title] => Cat 5
                                                            [pid] => 145
                                                            [live] => 0
                                                            [displayOrder] => 255
                                                            [custom1] => 
                                                            [custom2] => 
                                                            [custom3] => 
                                                            [live_id] => 
                                                            [lastUpdated] => 1411840288
                                                            [owner_id] => 
                                                            [availableFrom] => 1411840288
                                                            [availableUntil] => 
                                                            [type] => 
                                                            [children] => Array
                                                                (
                                                                )

                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

    [1] => Array
        (
            [id] => 141
            [title] => Careers Guidance
            [pid] => 0
            [live] => 0
            [displayOrder] => 255
            [custom1] => 
            [custom2] => 
            [custom3] => 
            [live_id] => 
            [lastUpdated] => 1411839580
            [owner_id] => 
            [availableFrom] => 1411839580
            [availableUntil] => 
            [type] => catTypeOne
            [children] => Array
                (
                )

        )

)

【问题讨论】:

  • 以列表格式打印数组?您究竟想要输出什么(即提供样本/所需的输出)?您当前的代码是什么样的,试图创建此显示(即您尝试了什么)?

标签: php codeigniter recursion


【解决方案1】:

只需创建一个显示一个级别的函数。每次遇到子数组时,都会在该子数组上递归调用该函数。每次调用函数前后都要写上ul标签。

【讨论】:

    【解决方案2】:

    这将嵌套<ul>s 任意深度。每个<ul> 都会有一个level# 类,其中# 是一个以0 开头的顶层整数。

    function make_list($array, $level = 0)
    {
      $ret = "<ul class=\"level$level\">";
      foreach($array as $sub)
      {
        if(is_array($sub))
        {
          $sub = make_list($sub, $level + 1);
        }
        $ret .= "\n<li>$sub</li>";
      }
      $ret .= "\n</ul>";
      return $ret;
    }
    

    假设您的原始数组名为$my_array,您可以这样称呼它:

    echo make_list($my_array);
    

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2020-10-17
      相关资源
      最近更新 更多