【问题标题】:How to use multiple arrays in " single " foreach() loop [duplicate]如何在“单个”foreach()循环中使用多个数组[重复]
【发布时间】:2012-05-06 18:26:12
【问题描述】:

我正在尝试使用单个 foreach 循环生成 url 来回显两个数组的所有变量。一些编码示例将受到尊重。

到目前为止我有这个:

<?php
foreach($menu_names as $menu_name){
echo "<li><a href='?subj= " .urlencode($subjects["id"]). " '>".$menu_name."</a></li>";
}
?>

我想在这个循环中再添加一个数组

【问题讨论】:

  • @JohnConde 退房。我已经编辑了我的问题
  • @Candy 请举一些例子!
  • @candyleung foreach 循环更快

标签: php arrays foreach echo


【解决方案1】:

假设您在这两个数组中有相同数量的项目。

如果你想使用foreach(),那么数组需要有相同的索引:

foreach ($a as $index => $value)
{
    echo $a[$index] .' '. $b[$index];
}

如果数组有数字索引,你可以使用for():

for ($i = 0; $i < sizeof($a); $i++)
{
    echo $a[$i] .' '. $b[$i];
}

【讨论】:

  • 注意,如果你使用for,数组也需要有相同的索引。除了在语义上分离索引并避免在已经拥有它时说$a[$index](它是$value)之外,您并没有真正获得太多。
  • 谢谢我需要那个。
【解决方案2】:

array_combine() 会将您的 2 个数组与 key=&gt;value 对合并为一个,然后通过 foreach 语句访问它们 例如

foreach(array_combine($a,$b) as $key=>$value) {
    echo $key."<br/>".$value;
}

【讨论】:

    【解决方案3】:

    答案取决于究竟你需要对数组做什么以及你需要如何去做。

    如果您的数组具有相似的索引,并且您需要使用每个数组中的相同元素,您可以这样做

    foreach ($array1 as $index => $value1) {
        $value2 = $array2[$index];
        // do stuff with $value1 and $value2 here
    }
    

    (虽然在这种情况下,特别是如果您发现自己经常这样做,您可能需要考虑使用对象或数组的单个数组,以便数据始终在一起并且更容易连接。)

    或者,如果数组中包含相同类型的元素,并且您想按顺序迭代两者,则可以迭代 array_merge($array1, $array2)。 (但是,如果数组没有数字索引,特别是如果它们具有相同的字符串键,则数组的一个元素可以替换另一个。有关详细信息,请参阅 the docs on array_merge。)

    还有很多其他的可能性,具体取决于您需要元素的方式。 (这个问题确实没有提供任何相关信息。)

    【讨论】:

      【解决方案4】:

      完整代码:

      1)

      <?php
      $First = array('a', 'b', 'c', 'd');
      $Second = array('1', '2', '3', '4');
      
      foreach($First as $indx => $value) {
          echo $First[$indx].$Second[$indx];
          echo "<br />";
      }
      ?>
      

      或 2)

      <?php
      $First = array('a', 'b', 'c', 'd');
      $Second = array('1', '2', '3', '4');
      
      for ($indx = 0 ; $indx < count($First); $indx ++) {
        echo $First[$indx] . $Second[$indx];
        echo "<br />";
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 2020-10-18
        • 1970-01-01
        • 2015-08-29
        • 1970-01-01
        相关资源
        最近更新 更多