我在PHP中有以下循环代码
for($i=10; $i<=50; $i=$i+10)
{
echo $i;
}
它会打印出来 10 20 30 40 50
我想添加一些特定的$ i值,例如 $ i = 15,$ i = 28
所以它打印出来 10 15 20 28 30 40 50
我应该如何编辑代码?
答案 0 :(得分:4)
如果你想要特定的值,你应该创建一个包含这些值的数组并迭代它:
$vals = array(10, 15, 20, 28, 30, 40, 50);
foreach ($vals as $i) {
echo $i;
}
答案 1 :(得分:2)
如果你有固定的地方显示这些值..那么你可以使用简单的if
for($i=10; $i<=50; $i=$i+10)
{
echo $i;
if($i == 10)
{
echo '15';
}
if($i == 20)
{
echo '28';
}
}
答案 2 :(得分:2)
好的,我会玩“面试问题”游戏:
for($i=10; $i<=50; $i++) {
if ($i % 10 === 0) {
echo $i;
}
else if ($i === 15 || $i === 28) {
echo $i;
}
}
的结果
您可以通过添加“允许值”表来改进此答案:
$allowed = array (15, 28); // List here all the non % 10 value you want to print
for($i=10; $i<=50; $i++) {
if ($i % 10 === 0) {
echo $i;
}
else if (in_array($i, $allowed)) {
echo $i;
}
}
的结果
答案 3 :(得分:2)
您可以将15和28值放在数组中,并使用array_intersect获取值。
创建一个数组来保存15和28值(中间值)。
$new_vals = array(15,28);
现在在for循环中,您可以调用array_insersect函数来获取中间值。您的最终代码将如下所示。
$new_vals = array(15,28);
for($i=10; $i<=50; $i=$i+10)
{
echo $i;
$val_range = range($i,$i+10);
$new_array = array_intersect($new_vals , $val_range);
foreach($new_array as $value)
{
echo $value;
}
}
答案 4 :(得分:1)
最简单的方法是使用像@WaleedKhan写的foreach
循环。
要准备数组,您可以使用for
循环:
$vals = array();
for($i = 10; $i <= 50; $i = $i + 10){
$vals[] = $i;
}
$vals[] = 15;
$vals[] = 28;
sort($vals);
foreach(...
答案 5 :(得分:1)
试试这个:
$extra = array(15,28);
$res = array();
for($i=10; $i<=50; $i=$i+10){
$res[] = $i;
}
$result = array_merge($res,$extra);
sort($result);
echo "<pre>";
print_r($result);
答案 6 :(得分:0)
你可以这样做:
function EchoLoopStuff($start, $to, $step) {
for($i=$start; $i<=$to; $i=$i+$step) {
echo $i;
}
}
但是当输入相互矛盾时,你需要添加一些检查来避免问题。