是否有可能做到这一点? (这里是我的代码)
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的大师,帮我!
是否有可能做到这一点? (这里是我的代码)
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的大师,帮我!
试试这个:
for ($i=0, $k=10; $i<=10 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
两个变量$i
和$k
与初始化0
和10
分别。 在每个各循环结束$i
将由一个递增( $i++
)和$k
减一( $k--
)。 所以$i
将有值0,1,...,10和$k
值10,9,...,0。
你也可以添加一个条件为第二个变量
for ($i=0, $k=10; $i<=10, $k>=0 ; $i++, $k--) {
echo "Var " . $i . " is " . $k . "<br>";
}
你不应该使用两个for循环为你想达成的目标,你要循环121次总(11×11)的内容。 你真正想要的是正好有跟踪j中环的外部声明的计数器,然后递减循环内学家
编辑:感谢浓汤以抓住包容我。
如果像你的代码的样子,你运行你可以简单的。减去方向相反的两个值:
echo "Var " . $i . " is " . 10 - $i . "<br>";
但我想这不是真的是你想要的吗? 同时,应注意与建议逗号操作 。 虽然这是一件很好的事能引起像其他语言顽皮副作用, C和C ++为PHP实现我的目标。
为了扩大对其他(正确)的答案,你在做什么叫做嵌套循环。 这意味着对于所述外环(第一个)的每次迭代,你完成整个内循环。 这意味着,而不是11个输出,你会得到11 + 11 + 11 + ... = 11 * 11
的输出
array_map(function($i) {
echo "Var {$i} is ".(10-$i)."<br/>".PHP_EOL;
}, range(1,10));
我试图让在数据库中的开始和结束时间和商店,给定一个开始和结束时间,你遍历每次使用两个变量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)
]);
}