【问题标题】:Foreach loop on larger multidimensional array更大的多维数组上的 Foreach 循环
【发布时间】:2018-06-11 17:02:34
【问题描述】:

我正在尝试找到在这个多维数组周围使用 foreach 循环的正确方法,因为我正在做的不是给我四个部分。

这是一个主数组,它分解为另一个“区域”数组。有四个区域,每个区域都有自己的一组显示,每个显示都有一个页面和到期日期。

我只是尝试循环每个级别,以便我可以根据需要在整个页面中回显不同的数据位

$pages = array(
  "Areas" => array(
    "Area One"=>array(
      "Displays"=>array(
        "Lobby"=>array(
          "Page"=>"News",
          "Expiration"=>"06/12/2018"
        ),
        "Office"=>array(
          "Page"=>"Social",
          "Expiration"=>"06/30/2018"
        ),
      ),
    ),
    "Area Two"=>array(
      "Displays"=>array(
        "Lobby"=>array(
          "Page"=>"News",
          "Expiration"=>"06/12/2018"
        ),
        "Office"=>array(
          "Page"=>"Social",
          "Expiration"=>"06/30/2018"
        ),
      ),
    ),
    "Area Three"=>array(
      "Displays"=>array(
        "Lobby"=>array(
          "Page"=>"News",
          "Expiration"=>"06/12/2018"
        ),
        "Office"=>array(
          "Page"=>"Social",
          "Expiration"=>"06/30/2018"
        ),
      ),
    ),
    "Area Fou"=>array(
      "Displays"=>array(
        "Lobby"=>array(
          "Page"=>"News",
          "Expiration"=>"06/12/2018"
        ),
        "Office"=>array(
          "Page"=>"Social",
          "Expiration"=>"06/30/2018"
        ),
      ),
    ),
  ),
);


<?php foreach($pages as $areas=>area):?>
<h3><?php echo $area?> This would list Area One, Area Two, etc.</h3>
<h5><?php echo $Displays?>This would list Lobby, Office</h5>
<?php end foreach?>

因此,如果有意义的话,我最终应该列出 4 个文本块,列出每个区域及其各自的显示。

【问题讨论】:

  • 到目前为止你尝试过什么?您可以在问题中包含您当前拥有的代码吗?

标签: php arrays loops foreach


【解决方案1】:

你需要在这里覆盖两个foreach:

foreach($pages["Areas"] as $area_name => $area_details)
{
    echo "<h3>" . $area_name . "</h3>";
    foreach($area_details["Displays"] as $d=>$v)
    {
        echo "<h5>" . $d . "</h5>";
        echo "<p>Page: " . $v["Page"] . "</p>";
        echo "<p>Expiration: " . $v["Expiration"] . "</p>";
    }
}

【讨论】:

    【解决方案2】:

    我认为您正在寻找 Displays 作为每个区域的键。您可以使用array_keys 并使用implode 将它们显示为字符串,或者使用use another foreach 将它们显示为每个数组项。

    也许你可以像这样更新你的代码

    <?php foreach($pages["Areas"] as $areas => $area):?>
    <h5><?php echo $areas?></h5>
    <h3><?php echo implode(',', array_keys($area["Displays"]))?></h3>
    
    <?php endforeach;?>
    

    Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 2018-07-13
      • 1970-01-01
      • 2022-12-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多