使用PHP在for循环索引中添加静态编号

I have following for loop code in PHP

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

it will print 10 20 30 40 50

I want to add some specific $i value such as $i=15 and $i=28

So it shold print 10 15 20 28 30 40 50

How should I edit the code ?

If you want specific values, you should make an array with those values and iterate through it:

$vals = array(10, 15, 20, 28, 30, 40, 50);
foreach ($vals as $i) {
    echo $i;
}

You could do something like this:

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

But you'd need to add some checking to save yourself from issues when inputs contradict.

if you have fixed place where to show these values .. then you can use simple if

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

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

    }

Ok, i'll play the "interview question" game :

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

Result at http://codepad.org/JBPkm8W1

You can improve this answer by adding an "allowed values" table :

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

The result at http://codepad.org/w8Erv17K

The easiest way is to use a foreach loop like @WaleedKhan wrote.

To prepare the array you can use for loop like you did:

$vals = array(); 
for($i = 10; $i <= 50; $i = $i + 10){
  $vals[] = $i;
  }
$vals[] = 15;
$vals[] = 28;
sort($vals);
foreach(...

Try this :

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

You can put the 15 and 28 values in array and get the values using array_intersect.

Create an array to hold the 15 and 28 values (intermeditate values).

$new_vals = array(15,28);

Now in your for loop you can call array_insersect function to get the intermediate values. Your final code will look like this.

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