进行以下循环的更简洁方式?

kyl*_*lex 7 php loops dayofweek

我有以下for循环.它分别使用0-6形式的星期日 - 星期日.

是否有更简洁的方法来做到这一点?而不是列出来的if ($i=="day")

// $i = 0 is monday... $i = 6 is Sunday
for($i=0;$i<7;$i++){

    if ($i==0)
        echo ' <input name="repeat_on_week[]" type="checkbox" value="0"  /> Monday';
    if ($i==1)
        echo ' <input name="repeat_on_week[]" type="checkbox" value="1" /> Tuesday';
    if ($i==2)
        echo ' <input name="repeat_on_week[]" type="checkbox" value="2" /> Wednesday';
    if ($i==3)
       echo ' <input name="repeat_on_week[]" type="checkbox" value="3" /> Thursday';
    if ($i==4)
       echo ' <input name="repeat_on_week[]" type="checkbox" value="4" /> Friday';
    if ($i==5)
        echo ' <input name="repeat_on_week[]" type="checkbox" value="5" /> Saturday';
    if ($i==6)
        echo ' <input name="repeat_on_week[]" type="checkbox" value="6" /> Sunday';

}
Run Code Online (Sandbox Code Playgroud)

Viv*_*ath 16

怎么样:

$days = array('Monday', 
              'Tuesday', 
              'Wednesday', 
              'Thursday', 
              'Friday', 
              'Saturday', 
              'Sunday'
        );

for($i = 0; $i < 7; $i++) {
   echo '<input name = "repeat_on_week[]" type = "checkbox" value = "' . $i . '" />' . $days[$i];
}
Run Code Online (Sandbox Code Playgroud)

或者使用foreach; 它更容易在眼睛上,你不必弄清楚数组的长度:

for($days as $i => $day) {
   echo "<input name = \"repeat_on_week[]\" type = \"checkbox\" value = \"$i\" /> $day";
}
Run Code Online (Sandbox Code Playgroud)

这是一个好兆头,你认为"必须有一个更好的方法来做到这一点!" .这意味着你正朝着正确的方向前进*.但我还建议了解数组的概念以及何时使用它们.

*一个优秀的程序员总是认为他或她的代码很糟糕,这是另一种说法,一个优秀的程序员总是试图改善自己,这也是一个说好的程序员谦虚的另一种方式.

  • 最后给你的评论+1.说得好. (2认同)