【问题标题】:Multidimentional Array Foreach - Display in different tables多维数组 Foreach - 显示在不同的表格中
【发布时间】:2011-09-27 23:35:00
【问题描述】:

我目前有以下数组:

Array
(
    [group] => Array
        {
            [5] => group1-title
            [6] => group2-title
        }
    [treatment] => Array
        (
            [5] => Array
                (
                    [16] => Array
                        (
                            [title] => title1
                            [description] => description1
                            [price] => price1
                        )

                    [17] => Array
                        (
                            [title] => title2
                            [description] => description2
                            [price] => price2
                        )
            [6] => Array
                (

                    [21] => Array
                        (
                            [title] => title3
                            [description] => description3
                            [price] => price3
                        )
                }
        }
}

(实际上数组数据很大,因此已将其裁剪以提供上面的示例)

我正在尝试做的是在数组上运行一个 foreach 循环,以使我能够将定价表中的数据按其组分开(数组键 [5][6]

我想要的最终结果如下:

Group1-标题


标题 1 |描述 |价格
标题 2 |描述 |价格


Group2-标题


标题 3 |描述 |价格


到目前为止,我已经尝试使用带有内部 foreach 循环的 foreach 循环。这可以很好地提取细节并回显 - 但是我无法弄清楚如何在 foreach 循环期间成功地对数据进行分组。

【问题讨论】:

    标签: php multidimensional-array


    【解决方案1】:

    这是解决问题的一种方法。抓取第一个数组项并将其用于标题。然后使用第一项中的键循环遍历数组的其余部分以显示结果。显然我的显示代码又快又脏,但这应该能让你开始。

    foreach($your_array['group'] as $iGroupId => $sTitle) {
        echo 'Group: ' . $sTitle . "\n";
        foreach($your_array['treatment'][$iGroupId] as $aGroup) {
            echo implode('|', $aGroup); . "\n"
        }
    }
    

    【讨论】:

      【解决方案2】:
      $data = array(); //your data array above
      
      //loop through the groups    
      foreach($data['group'] as $key=>$group){
          //echo group header and table start
          echo "<h1>$group</h1>";
          echo "<table border=1>";
          //loop through the data with the corresponding group key
          foreach($data['treatment'][$key] as $row){
              //echo row data
              echo "<tr>";
              echo "<td>{$row['title']}</td>";
              echo "<td>{$row['description']}</td>";
              echo "<td>{$row['price']}</td>";
              echo "</tr>";
          }
          //close table.
          echo "</table>";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        • 2021-01-10
        相关资源
        最近更新 更多