Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当极限和增量是动态的时,如何得到for循环的最后一次迭代?_Php_Loops_For Loop_Logic - Fatal编程技术网

Php 当极限和增量是动态的时,如何得到for循环的最后一次迭代?

Php 当极限和增量是动态的时,如何得到for循环的最后一次迭代?,php,loops,for-loop,logic,Php,Loops,For Loop,Logic,我见过一些和这个有关的问题,比如 但我没有得到精确解,因为在我的例子中,增量和结束极限都是动态的 要求:-我不希望在打印最后一个元素后加逗号 $inc=11; $end=100; for($i=1;$i<=$end;$i=$i+$inc){ echo $i==$end?$i:"$i,"; // 1,12,23,34,45,56,67,78,89,100 } $inc=11; $end=100; 对于($i=1;$i使用rtrim删除最后一个逗号 $inc = 12;

我见过一些和这个有关的问题,比如

但我没有得到精确解,因为在我的例子中,增量结束极限都是动态的

要求:-我不希望在打印最后一个元素后加逗号

$inc=11;
$end=100;
for($i=1;$i<=$end;$i=$i+$inc){
    echo $i==$end?$i:"$i,";  // 1,12,23,34,45,56,67,78,89,100
} 
$inc=11;
$end=100;

对于($i=1;$i使用rtrim删除最后一个逗号

$inc   = 12;  // Now $inc is 12
$end   = 100;

$print = '';
for($i=1;$i<=$end;$i=$i+$inc){
    $print .= ($i==$end)? $i : "$i,";  // 1,13,25,37,49,61,73,85,97,
} 
$print = rtrim($print, ',');
echo $print;
$inc=12;//现在$inc是12
$end=100;
$print='';

对于($i=1;$i使用rtrim删除最后一个逗号

$inc   = 12;  // Now $inc is 12
$end   = 100;

$print = '';
for($i=1;$i<=$end;$i=$i+$inc){
    $print .= ($i==$end)? $i : "$i,";  // 1,13,25,37,49,61,73,85,97,
} 
$print = rtrim($print, ',');
echo $print;
$inc=12;//现在$inc是12
$end=100;
$print='';
对于($i=1;$i您可以使用

echo $i+$inc>$end?$i:"$i,";
它检查这是否是最后一次可能的迭代。

您可以使用

echo $i+$inc>$end?$i:"$i,";
它检查这是否是最后一次可能的迭代。

保持简单:

$numbers = range(0, $end, $inc);
$string = implode(",", $numbers);
echo $string;
你可以在这里看到:

保持简单:

$numbers = range(0, $end, $inc);
$string = implode(",", $numbers);
echo $string;
你可以在这里看到:


你可以这样做:

<?php
$inc=4;
$end=10;
for($i=1;$i<=$end;$i=$i+$inc){
    echo ($i+$inc-1)>=$end?$i:"$i,";  // 1,5,9
} 
?>


此代码处理素数大小写,也不会给您任何结果,如
//1,13,25,37,49,61,73,85,97,
总是给您类似
//1,13,25,37,49,61,73,85,97的结果。
任何素数后都不加逗号。

您可以这样做:

<?php
$inc=4;
$end=10;
for($i=1;$i<=$end;$i=$i+$inc){
    echo ($i+$inc-1)>=$end?$i:"$i,";  // 1,5,9
} 
?>


这段代码处理素数的情况也不会给你像
//1,13,25,37,49,61,73,85,97这样的结果,
总是给你像
//1,13,25,37,49,61,73,85,97这样的结果。
在任何素数之后都没有添加逗号。

使用for循环而不是while(条件)是关键吗?您只需检查下一个增量迭代是否将运行:
echo$i+$inc>$end?$i:$i,“
为什么不先创建一个递增元素数组,然后使用带逗号的内爆函数作为粘合剂?若改用内爆函数,就不必担心这些问题了。@Rizier123:谢谢兄弟。它工作起来很有魅力:-)@LauriOrgla:我已经在循环中,所以在数组中存储所有元素然后使用内爆不是一个好主意。使用for循环而不是while(条件)是否至关重要?您可以只检查下一个增量迭代是否将运行:
echo$I+$inc>$end?$I:$I:$I为什么不创建一个递增元素数组,然后使用带逗号的内爆函数作为粘合剂?如果你改用内爆,你就不用担心这些了。@Rizier123:谢谢你,兄弟。它就像一个符咒一样工作:-)@LauriOrgla:我已经在循环中了,所以将所有元素存储在数组中然后使用内爆不是一个好主意。这是一个很好的选择。谢谢:-)好的选择。谢谢:-)