是否有可能做到这一点?(这是我的代码)
for ($i = 0 ; $i <= 10 ; $i++){
for ($j = 10 ; $j >= 0 ; $j--){
echo "Var " . $i . " is " . $k . "<br>";
}
}
我想要这样的东西:
变量 0 是 10
变量 1 是 9
变量 2 是 8 ...
但是我的代码是错误的,它给出了一个巨大的列表。PHP大师,帮助我!
是否有可能做到这一点?(这是我的代码)
for ($i = 0 ; $i <= 10 ; $i++){
for ($j = 10 ; $j >= 0 ; $j--){
echo "Var " . $i . " is " . $k . "<br>";
}
}
我想要这样的东西:
变量 0 是 10
变量 1 是 9
变量 2 是 8 ...
但是我的代码是错误的,它给出了一个巨大的列表。PHP大师,帮助我!
尝试这个:
for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
两个变量$i
和分别用和$k
初始化。在每个循环结束时,将递增一 ( ) 并递减一 ( )。所以会有值 0, 1, ..., 10 和值 10, 9, ..., 0。0
10
$i
$i++
$k
$k--
$i
$k
您还可以为第二个变量添加条件
for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
array_map(function($i) {
echo "Var {$i} is ".(10-$i)."<br/>".PHP_EOL;
}, range(1,10));
您不应该使用两个 for 循环来实现您想要实现的目标,因为您总共循环了 121 次 (11x11)。您真正想要的只是在跟踪 j 的循环外声明一个计数器,然后在循环内递减 j。
编辑:感谢 Gumbo 为我捕捉到包含内容。
为了扩展其他(正确)答案,您所做的称为嵌套循环。这意味着对于外循环的每次迭代(第一次),您都在完成整个内循环。这意味着您获得的不是 11 个输出,而是11 + 11 + 11 + ... = 11 * 11
输出
我试图获取开始和结束时间并存储在数据库中,给定开始和结束时间,您每次使用两个变量 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)
]);
}