有什么办法可以在php中为十进制数运行循环吗?

时间:2018-11-11 12:56:24

标签: php html for-loop

我需要使用php FOR循环显示带有十进制数字的选择框。参见下面的代码:

<select class="form-control" name="delayTime" title="Choose animation delay time..." data-toggle="tooltip" required>
<?php
 for ($x = 0.1; $x <= 10.1; $x=$x+0.1) {
  if($x == $updateEntry->delayTime){
   echo '<option value="' .$x.'" selected>'.$x.'s</option>';
  }
   echo '<option value="' .$x.'">'.$x.'s</option>'.PHP_EOL;
 }
?>
</select>

此循环将一直持续到到达第10位。

是否可以在php中循环十进制数字?

  

如果可能,任何人都可以检查以下不起作用的代码。一世   从数据库中获取数据,我使用了条件语句   选择并显示在选择框中选择的现有记录:

<?php
 foreach (range(0.1, 10, 0.1) as $val) {
   $selected = ($val == $updateEntry->delayTime) ? "selected": "";
    echo '<option value="' . $val . '" '.$selected.'>' . $val . 's</option>';
 }
?>
     

请参阅下面的屏幕截图。应该在选择框中选择值7.1,但不能仅选择开头的两个或三个数字,不知道为什么吗?请帮助我进行排序。   The value 7.1 should be selected in the select box but it not selected only beginning two or three number get selected, don't know why? Please help me to sort it.

最后,我找到了通过在foreach循环中使用range来解决此问题的方法。见下文:

df = pd.read_json(path_or_buf="file_path\json.txt",  typ='frame')

4 个答案:

答案 0 :(得分:4)

简单的range

// first `0.1` - start value, `10` - end value, second `0.1` - step
foreach (range(0.1, 10, 0.1) as $val) {  
    echo '<option value="' . $val . '">' . $val . 's</option>';
}

答案 1 :(得分:3)

您可以通过多种方式执行此操作。例如,使用for()循环。从0.1开始,一直到10,然后逐步增加0.1

range()也是一个不错的选择,但是您必须使用foreach()

<?php
  echo '<select name="animationDelayTime">';
  for ($x = 0.1; $x <= 10; $x=$x+0.1) {
   echo '<option value="' .$x.'">'.$x.'s</option>'.PHP_EOL;
  }
  echo '</select>';  
?>

演示: https://3v4l.org/RlAcM

编辑:根据新的要求更改。在这里,我只是假设$updateEntry->delayTime的值为 0.5 。您可以在从数据库中获取它时使用它。

<select class="form-control" name="delayTime" title="Choose animation delay time..." data-toggle="tooltip" required>
<?php
 //$selected = '';
 for ($x = 0.1; $x <= 10.1; $x=$x+0.1) {
   $selected = ($x == 0.5) ? "selected": "";     
   echo '<option value="' .$x.'" '.$selected.'>'.$x.'s</option>'.PHP_EOL;
 }
?>
</select>

答案 2 :(得分:2)

您可以使用While循环:

// Initialize the variable
$val = 0.1; 

// Loop until the value is less than or equal to 10
while ($val <= 10) {  

    // generate the string using $val
    echo '<option value="' . $val . '">' . $val . 's</option>';

    // Increment the value by 0.1 for next iteration
    $val += 0.1; 
}

答案 3 :(得分:0)

尝试一下

For( $x = 0 ; $x < 1.4; $x += 0.1){

echo "<option value='$x'>".$x."s</option>";
}