【问题标题】:How to use for and foreach together如何同时使用 for 和 foreach
【发布时间】:2018-09-24 15:42:31
【问题描述】:

我在一个数组中有很多文件

name1
name2
name3
name4

我将这个数量的文件计算如下:

$total = count($files); // total of 4 files for example

但我想了解如何将 for 语句与 foreach 结合使用

for ($x=1; $x<=$total; $x++) {
foreach($files as $file)
  {  
    echo "http://$file";
    echo $x;
  }
}

这样的结果是:

name1  1
name1  1 
name1  1
name1  1

name1  2
name1  2
name1  2
name1  2

name1  3
name1  3
name1  3
name1  3

name1  4
name1  4
name1  4
name1  4

name1  5
name1  5
name1  5
name1  5

我希望结果是

name1  1
name2  2
name3  3
name4  4

但是我很难理解逻辑,关于同时使用 foreach 和 for。

【问题讨论】:

  • 不可能,foreach 是一个阻塞调用,因此它完成,然后 for 循环继续进行下一次迭代。
  • 我认为while 然后foreach 会更好?
  • 你不需要 FOR 来做你正在做的事情
  • 你需要一个 for(计算元素)或一个 foreach(不需要计算元素来遍历主题)
  • @Gislef 就它是否可能而言,您所做的只是初始化一个变量并增加它的值。 ++-- 运算符不是为 for 循环保留的。

标签: php for-loop foreach


【解决方案1】:

你可以使用其中一个,你不需要两个都需要:

$x = 1;

foreach($files as $file)
{  
    echo "http://$file";
    echo $x++;
}

for($x = 0; $x < $total; $x++)
{
    echo "http://$files[$x]";
    echo $x + 1; // arrays are zero indexed, so need to add 1
}

【讨论】:

    【解决方案2】:

    增加$x并行输出文件名:

    $x = 1;
    foreach($files as $file)
    {  
       echo "http://$file";
       echo $x;
       $x++;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-29
      • 1970-01-01
      • 2018-01-02
      • 2018-07-20
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多