1

我在 PHP 中有以下 for 循环代码

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

我应该如何编辑代码?

4

7 回答 7

4

如果你想要特定的值,你应该用这些值创建一个数组并遍历它:

$vals = array(10, 15, 20, 28, 30, 40, 50);
foreach ($vals as $i) {
    echo $i;
}
于 2013-03-28T12:10:32.697 回答
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;
    }
}
于 2013-03-28T12:25:20.433 回答
2

如果您有固定显示这些值的位置..那么您可以使用简单的 if

    for($i=10; $i<=50; $i=$i+10)
    {

         echo $i;
        if($i == 10)
        {
          echo '15';
        }
        if($i == 20)
        {
           echo '28';
        }

    }
于 2013-03-28T12:12:07.100 回答
2

好的,我来玩“面试题”游戏:

for($i=10; $i<=50; $i++) {
    if ($i % 10 === 0) {
        echo $i;
    }
    else if ($i === 15 || $i === 28) {
        echo $i;
    }
}

结果在http://codepad.org/JBPkm8W1

您可以通过添加“允许值”表来改进此答案:

$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;
    }
}

结果在http://codepad.org/w8Erv17K

于 2013-03-28T12:13:26.687 回答
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);
于 2013-03-28T12:15:40.817 回答
1

最简单的方法是使用foreach像@WaleedKhan 写的循环。

要准备数组,您可以for像以前一样使用循环:

$vals = array(); 
for($i = 10; $i <= 50; $i = $i + 10){
  $vals[] = $i;
  }
$vals[] = 15;
$vals[] = 28;
sort($vals);
foreach(...
于 2013-03-28T12:13:27.997 回答
0

你可以这样做:

function EchoLoopStuff($start, $to, $step) {
  for($i=$start; $i<=$to; $i=$i+$step) {
    echo $i;
  }
}

但是您需要添加一些检查以在输入矛盾时避免出现问题。

于 2013-03-28T12:11:21.690 回答