PHP:将单个数组输出为多个列表
我有一个长度未知的数组:PHP:将单个数组输出为多个列表,php,html,arrays,Php,Html,Arrays,我有一个长度未知的数组: $array = array('1', '2', '3', '4', '5', '6', '7', '8' ...); 我需要将这个数组输出为多个列表,其中每3个数组条目创建一个新列表 <ul> <li>1</li> <li>2</li> <li>3</li> </ul> <ul> <li>4</li> <li
$array = array('1', '2', '3', '4', '5', '6', '7', '8' ...);
我需要将这个数组输出为多个列表,其中每3个数组条目创建一个新列表
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
请注意,我需要关闭最后一个列表,即使它不包含3个列表项
以下是我的尝试:
<?php for ($i = 0; $i < count($rows); ++$i): ?>
<?php if (($i % 3) == 0): ?>
<ul>
<?php endif; ?>
<li><?php print $rows[$i]; ?></li>
<?php if (($i % 3) == 2): ?>
</ul>
<?php endif; ?>
<?php endfor; ?>
尝试使用foreach循环
$array = array('1', '2', '3', '4', '5', '6', '7', '8');
$i=1;
foreach($array as $a) {
if($i == 1) echo '<ul>';
echo '<li>'.$a.'</li>';
if($i % 3 == 0) {
echo '</ul>';
echo '<ul>';
}
if($i == count($array))
echo '</ul>';
$i++;
}
输出:-
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
尝试使用foreach循环
$array = array('1', '2', '3', '4', '5', '6', '7', '8');
$i=1;
foreach($array as $a) {
if($i == 1) echo '<ul>';
echo '<li>'.$a.'</li>';
if($i % 3 == 0) {
echo '</ul>';
echo '<ul>';
}
if($i == count($array))
echo '</ul>';
$i++;
}
输出:-
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
<ul>
<li>7</li>
<li>8</li>
</ul>
您可以为此任务使用数组块。把它们分成三块:
$array = range(1, 8);
$unknown_length = array_chunk($array, 3); // cut by batches of three
foreach($unknown_length as $ul) {
echo '<ul>';
foreach($ul as $li) {
echo "<li>$li</li>";
}
echo '</ul>';
}
您可以为此任务使用数组块。把它们分成三块:
$array = range(1, 8);
$unknown_length = array_chunk($array, 3); // cut by batches of three
foreach($unknown_length as $ul) {
echo '<ul>';
foreach($ul as $li) {
echo "<li>$li</li>";
}
echo '</ul>';
}
这应该适合您: 在这里,我将数组拆分为3块。然后我使用foreach循环遍历每个innerArray,并使用
这应该适合您: 在这里,我将数组拆分为3块。然后我使用foreach循环遍历每个innerArray,并使用
为什么不在HTML中使用类似模板的替代循环语法呢?当然,如果您使用的是某种视图
<? for ($i=0; $i<count($a); $i+=3): ?>
<ul>
<? for ($j=$i; $j<min(count($a), $i+3); $j++): ?>
<li><? echo $a[$j]; ?></li>
<? endfor; ?>
</ul>
<? endfor; ?>
为什么不在HTML中使用类似模板的替代循环语法呢?当然,如果您使用的是某种视图
<? for ($i=0; $i<count($a); $i+=3): ?>
<ul>
<? for ($j=$i; $j<min(count($a), $i+3); $j++): ?>
<li><? echo $a[$j]; ?></li>
<? endfor; ?>
</ul>
<? endfor; ?>
我试着向我们展示你的尝试,我想现在你得到了各种各样的答案,而且都很有趣,仔细研究每个答案,选择一个适合你的答案!我试着向我们展示你的尝试,我想现在你得到了各种各样的答案,而且都很有趣,仔细研究每个答案,选择一个适合你的答案!数组和非常有意义的变量名,这是code@Rizier123事实上,我并没有想过,只是在打字的时候我脑子里突然冒出来的第一件事。lol:D.array\u chunk和非常有意义的变量名,这是code@Rizier123事实上,我并没有想过,只是在打字的时候我脑子里突然冒出来的第一件事。好吧,有一件事我必须承认。你写了唯一一个我从未想到的答案,我也没想到,但这是一个非常有创意的解决方案。谢谢!它不是非常先进或结构复杂,但它可以工作,并且很容易理解@好吧,有一件事我必须承认。你写了唯一一个我从未想到的答案,我也没想到,但这是一个非常有创意的解决方案。谢谢!它不是非常先进或结构复杂,但它可以工作,并且很容易理解@里泽尔123