【问题标题】:Combine 2 Foreach statements into 1 PHP将 2 个 Foreach 语句合并为 1 个 PHP
【发布时间】:2013-07-22 14:22:15
【问题描述】:

是否可以将 2 个 foreach 语句合二为一?:

foreach ($this->products as $product) {
  // Content Here
}

foreach (range(0, 100, 10) as $number) {
  // Content Here
}

喜欢:

 foreach (($this->products as $product) && (range(0, 100, 3) as $number)) {
      // Content Here
    }

结果:

1 本田

2 宝马

3 马自达 - echo "break />";

4 沃尔沃

5 法拉利

6 大众 - 回显“break />”;

7 欧宝

8 保时捷

9 丰田 - echo "break />";

看起来像这样:

本田 宝马 马自达

沃尔沃 法拉利 大众

欧宝 保时捷 丰田

【问题讨论】:

  • 不,你不能。你想达到什么目的? (也许还有其他方法可以防止双重foreach
  • 您好,谢谢,我想在循环中的每十个数字上执行一段代码。等等,在 34 个产品中,第 10、20 和 30 个产品循环将执行循环中的附加代码

标签: php loops for-loop foreach


【解决方案1】:

不可能做双重foreach。但是,根据您的问题和评论,您应该执行以下操作:

$counter = 1;
foreach($this->products as $product){
    //do stuff here
    if($counter % 10 == 0){ // % is Mod (10 mod 9 = 1, 10 mod 10 = 0)
        //item 10, 20, 30...
    }
    $counter += 1;
}

使用此模板和PHP arithmetic,了解 MOD 的工作原理,您可以使用任意数量的产品来触发 if 语句。

【讨论】:

    【解决方案2】:

    如果你想给某个变量加 10,你可以试试这个:

    foreach($this->products AS $product) {
    
         //do something
    
         $counter += 10;
    
    }
    

    在循环开始之前将 $counter 设置为 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2019-07-22
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多