我有一个数组包含“可变”数量的结果/条目。从PHP数组获取结果:如何将每5个结果包装到无序列表中?
我正常使用foreach来回显数组结果。
问题:我想从无序列表中的数组中包装每5个结果。
我不知道结果的总数,因为它是可变的。例如,如果它包含18个项目。它应该显示4个UL,前3个UL包含5个结果,最后一个UL仅包含剩余的3个项目。
这很简单吗?非常感谢您的帮助。 :)
我有一个数组包含“可变”数量的结果/条目。从PHP数组获取结果:如何将每5个结果包装到无序列表中?
我正常使用foreach来回显数组结果。
问题:我想从无序列表中的数组中包装每5个结果。
我不知道结果的总数,因为它是可变的。例如,如果它包含18个项目。它应该显示4个UL,前3个UL包含5个结果,最后一个UL仅包含剩余的3个项目。
这很简单吗?非常感谢您的帮助。 :)
我很少使用这个功能,但array_chunk似乎做你想要什么。
$chunks = array_chunk($original, 5);
foreach ($chunks as $each_chunk) {
// echo out as unordered list
}
让我们假设你把列表中的数组...
$count = 0;
foreach ($unorderedList as $item) {
$count = ($count + 1)%5;
if ($count == 0) {
// wrap here
}
...do the stuff for every item you need
}
这是一个相当简单的算法:
$htmlOutput = "";
for($i=0;$i<count($myArray);$i++)
{
if($i%5==0)
{
$htmlOutput.= "<ul>";
}
$htmlOutput.= "<li>".$myArray[$i]."</li>";
if($i%5==4)
{
$htmlOutput.= "</ul>";
}
}
if(count($myArray)%5!=0)
{
$htmlOutput.= "</ul>";
}
echo $htmlOutput;
您可能需要修改此位,以满足您的要求
$cnt = 1;
foreach ($arr as $key => $val)
{
if($cnt==1) echo "<ul>";
echo "<li>$val</li>";
$cnt++;
if($cnt==5)
{
echo "</ul>";
$cnt=1;
}
}
如何:
<?php
$num_per_list = 5; // change me
$dudes = array("bill","jim","steve","bob","jason","brian","dave","joe","jeff","scott");
$count = 0;
$list_items = "";
foreach($dudes as $dude) {
$break = (($count%$num_per_list) == ($num_per_list-1));
$list_items .= "<li>" . $dude . "</li>";
if(($break) || (count($dudes)==($count+1))) {
$output = "<ul>" . $list_items . "</ul>";
$list_items = "";
// Output html
echo $output;
}
$count++;
}
?>
可能的[每12张图像的PHP div]重复( http://stackoverflow.com/questions/3934364/displaying-display-tree-every-12-images)或[显示文件的多行永不重复](http://stackoverflow.com/questions/3934364/displaying-多行文件 - 从不重复/ 3934486#3934486)或[什么是PHP操作符%,以及如何在现实世界的示例中使用它?](http://stackoverflow.com/questions/3204919/什么是php的操作符和如何使用它在现实世界的例子)基本上每个答案暗示模运算符或array_chunk将做 – Gordon 2010-11-12 19:32:00