PHP for循环有2个变量?(Php for loop with 2 variables?)

2019-06-26 15:02发布

是否有可能做到这一点? (这里是我的代码)

for ($i = 0 ; $i <= 10 ; $i++){
  for ($j = 10 ; $j >= 0 ; $j--){
     echo "Var " . $i . " is " . $k . "<br>";
  }
}

我想是这样的:

VAR 0是10

VAR 1是9

VAR 2是8 ...

但我的代码是错误的,它提供了一个巨大的名单。 PHP的大师,帮我!

Answer 1:

试试这个:

for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
    echo "Var " . $i . " is " . $k . "<br>";
}

两个变量$i$k与初始化010分别。 在每个各循环结束$i将由一个递增( $i++ )和$k减一( $k-- )。 所以$i将有值0,1,...,10和$k值10,9,...,0。



Answer 2:

你也可以添加一个条件为第二个变量

for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
    echo "Var " . $i . " is " . $k . "<br>";
}


Answer 3:

你不应该使用两个for循环为你想达成的目标,你要循环121次总(11×11)的内容。 你真正想要的是正好有跟踪j中环的外部声明的计数器,然后递减循环内学家

编辑:感谢浓汤以抓住包容我。



Answer 4:

如果像你的代码的样子,你运行你可以简单的。减去方向相反的两个值:

echo "Var " . $i . " is " . 10 - $i . "<br>";

但我想这不是真的是你想要的吗? 同时,应注意与建议逗号操作 。 虽然这是一件很好的事能引起像其他语言顽皮副作用, C和C ++为PHP实现我的目标。



Answer 5:

为了扩大对其他(正确)的答案,你在做什么叫做嵌套循环。 这意味着对于所述外环(第一个)的每次迭代,你完成整个内循环。 这意味着,而不是11个输出,你会得到11 + 11 + 11 + ... = 11 * 11的输出



Answer 6:

array_map(function($i) {
    echo "Var {$i} is ".(10-$i)."<br/>".PHP_EOL; 
}, range(1,10));


Answer 7:

我试图让在数据库中的开始和结束时间和商店,给定一个开始和结束时间,你遍历每次使用两个变量I&J

   $start = "09:00";
   $end = "18:00";
   $strEnTim = strtotime("10.00");

   $slotStart = strtotime($start);
   $slotEnd = strtotime($end);
   $slotNow = $slotStart;

   for( $i=$slotStart, $j=$strEnTim; $i, $j<=$slotEnd; $i+=3600,  $j+=3600) 
   {
        if(( $i < $slotNow) && ( $j < $strEnTim)) continue;
        Slot::create([
            'start_time' => date("H:i",$i),
            'end_time' => date("H:i", $j)
        ]);
   }


文章来源: Php for loop with 2 variables?