查找包含空白列表项的每个范围


Foreach Range with Blank List Entries

假设我有一个外部源,我正在从中收集数据并将其放入列表形式。这个外部源可以有1到100个条目。我们用rand()range()来表示它。(最小值为1,1到15之间的随机数作为我们的总"条目")

<?php
$max = rand(1, 15);
$range = range(1, $max);
?>
       <ul> 
<?php
foreach ($range as $number) {
echo '<li>' . $number . '</li>';
}
?>
      </ul>

回显如下:

    1
  • 2
  • 3
  • 4

现在我们假设我想让<li>总回显10次。

即使我的列表($number)低至1,或高至15。

如果它是1,它显示第一个条目,然后是9空白<li></li>(实际上,在我的代码中,它不会是空白的,但会有我自己指定的文本在里面。如<li>Blank Entry</li>

如果是15,则显示前10项,并截断后5项。

在后一个示例中,我知道如何将foreach中的范围设置为在10次迭代后停止,但是如何解释前一个示例中空白的<li>清单呢?

不知道为什么会这样…只需创建另一个数组并用随机值填充该数组。另一个数组接受这些值,最多10个,如果原始数组的值少于10个,则用'blank'填充。

<?php
    $max = rand(1, 15);
    $range = range(1, $max);
    $arr = [];
    for($i=0; $i<=9; $i++){
      if(isset($range[$i])){
        $arr[] = $range[$i];
      }else{
        $arr[] = 'blank';
      }
    }
    ?>
    <ul>
    <?php
    foreach ($arr as $number) {
      echo '<li>' . $number . '</li>';
    }
    ?>
    </ul>