如何改变索引3、5和15的循环行为


How to alter loop behavior for index 3, 5 and 15?

我不想显示数字3,5和15。我想让你显示当我的程序运行

1 2 3 4 5 6 7…

$var1 = 3;
$var2 = 5;
$var3 = 15;
for ($i=1; $i<=100; $i++) {
  if($i<=3){
    if (($i%$var1)==0) 
      echo 'Three' .'<br/>';
  } 
  if($i<=5)
    if (($i%$var2)==0) {
      echo 'Five' .'<br/>';
    }
  if($i<=15) 
    if ((($i%$var3)==0)) {
      echo 'ThreeFive' .'<br/>';
    }
  echo $i.'<br/>';  
}

一个相当粗糙但有效的解决方案是:

$var1 = 3;
$var2 = 5;
$var3 = 15;
for( $i=0; $i<100; $i++ ) {
  switch( $i ) {
    case $var1: echo 'Three<br>'; break;
    case $var2: echo 'Five<br>'; break;
    case $var3: echo 'ThreeFive<br>'; break;
    default:    echo $i.'<br>';
  }
}

检查下面的代码

$exclude_array = array(3,5,15);
for($i = 0;$i < 100; $i++){
   if(!in_array($i,$exclude_array))
   echo $i;
}

更优雅的解决方案…

$alter = array(3=>"Three<br>", 5=>"Five<br>", 15=>"ThreeFive<br>");
for($i=0; $i<100; $i++) echo isset($alter[$i]) ? $alter[$i] : $i;

我想你想要在每次$i被3或5整除时打印ThreeFive。那么你可以这样修改:

$alter = array(3=>"Three", 5=>"Five");
for($i=0; $i<100; $i++) {
    $print_word = false;
    foreach($alter as $key=>$val) if($i>0 && $i%$key==0) {
        echo $val;
        $print_word = true;
    }
    echo $print_word ? "<br>" : $i;
}

试试这个-

    $var1 = 3;
             $var2 = 5;
             $var3 = 15;
              for ($i=1; $i<=100; $i++) {
             if ($i==$var1) 
            echo 'Three' .'<br/>';

            else if ($i==$var2) {
            echo 'Five' .'<br/>';
           }
            else if ($i==$var3) {
            echo 'ThreeFive' .'<br/>';
           }
else
            echo $i.'<br/>';  
           }

试试这个:)

   <?php
    $var1 = 3;
    $var2 = 5;
    $var3 = 15;
    for ($i=1; $i<=100; $i++) {
        if($i == $var1){
            echo "three <br />";
        }elseif($i == $var2){
            echo "five <br />";
        }elseif($i == $var3){
            echo "Fifteen <br />";
        }else{
            echo $i."<br />";
        }
    }
?>