3

我将如何完成这个 PHP 任务?

我有一个无序的 html 列表和数组。我的代码将列表标签添加到数组中的每个项目以创建一个大的无序列表

            <ul>
                 <?php foreach ($rows as $id => $row): ?>
                        <li><?php print $row ?></li>
                <?php endforeach; ?>
            </ul>

下面的电流输出

            <ul>
                <li>01</li>
                <li>02</li>
                <li>.....</li>
                <li>.....</li>
                <li>15</li>
            </ul>

我想要的是拆分列表项,以便它们以 4 个为一组作为子无序列表。例如,如果这个数字不能被 4 整除,那么余数应该是最后一个较小的列表。

            <ul>
                <ul>
                    <li>01</li>
                    <li>02</li>
                    <li>.....</li>
                    <li>.....</li>
                </ul>
                <ul>
                    <li>05</li>
                    <li>06</li>
                    <li>.....</li>
                    <li>.....</li>
                </ul>
                <ul>
                    <li>09</li>
                    <li>10</li>
                </ul>
            </ul>

提前致谢。

4

5 回答 5

5
<ul>
<?php foreach ($rows as $id => $row): ?>
    <?php if ($id > 0 && $id % 4 === 0): ?>
        </ul><ul>
    <?php endif ;?>
    <li><?php echo $row; ?></li>
<?php endforeach; ?>
</ul>

(请注意,如果$rows数组的键不仅仅是索引号,则需要维护自己的计数器变量。)

于 2013-08-15T12:23:52.413 回答
0

尝试这样的事情:

   <?php
                 $rows = array("2","3","5","6","8","9","0","3","5");
                 $i =0;
                  foreach ($rows as $id => $row): 
                  if($i % 4 == 0)
                  { echo "</ul><ul>";}
                  $i++;
                  ?>
                        <li><?php print $row ?></li>
                <?php endforeach; ?>
            </ul>
于 2013-08-15T12:29:53.830 回答
0
<?php
$id=0;
foreach ($rows as $id => $row)
{
    $id+=1;
    if ($id % 4 == 0)
    {
         echo "<ul>";
    }

    echo "<li>$i</li>";

    if ($id % 4 == 0)
    {
         echo "</ul>";
    }
}

if ($id % 4 != 0)
{
    echo "</ul>";
}    
?>
于 2013-08-15T12:24:09.160 回答
0

最后,这是我寻求的解决方案。该解决方案包括一个声明,如果有许多项目不能被四整除,例如如果总共有五个项目,则关闭标签。感谢大家,如果没有您的意见,我无法做到。

            $count;
            foreach ($rows as $id => $row)
                {
                    if ($count % 4 == 0)
                    {           
                        echo "<ul>";
                    }

                    echo '<li>' . $row . '</li>';

                    if ($count % 4 == 3 || $count == count($rows)-1)
                    {
                        echo "</ul>";
                    }
                    $count++;
                }
于 2013-08-16T08:11:43.290 回答
0
foreach ($rows as $id => $row) {
  if ($id % 4 == 0) {
    // do something
  }
}
于 2013-08-15T12:26:47.983 回答