php - 将剩余物品放在新行中
问题描述
所以我可以在网页中每行显示 3 个项目。但是,如果有额外的项目,就会出现问题。假设我有一个包含 items 的数组1,2,3,4,5,6,7,8,9,10,11
。我可以显示项目 1 到 9。但是由于索引错误而无法显示,如果我添加10
,一切都会好起来的。11
12
我想要的是从中显示。
<div class='row-0'>
<p>1</p>
<p>2</p>
<p>3</p>
</div>
<div class='row-1'>
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<div class='row-2'>
<p>7</p>
<p>8</p>
<p>9</p>
</div>
对此:
<div class='row-0'>
<p>1</p>
<p>2</p>
<p>3</p>
</div>
<div class='row-1'>
<p>4</p>
<p>5</p>
<p>6</p>
</div>
<div class='row-2'>
<p>7</p>
<p>8</p>
<p>9</p>
</div>
<div class='row-3'>
<p>10</p>
<p>11</p>
</div>
到目前为止,这是我的演示代码:
<?php
$arr = array(1,2,3,4,5,6,7,8,9,10);
$row=0;
$i=0;
while(true){
echo "<div class='row-".$row."'>\n";
while(true){
echo "<p>".$arr[$i]."</p>\n";
$i++;
if($i%3===0){
break;
}
}
echo "</div>\n";
$row++;
if($arr[$i]==count($arr)){
break;
}
}
?>
有小费吗?感谢您的阅读。
解决方案
您应该只检查数组内部。并使用 2 个循环。行数的第一个循环。第二个循环用于元素的数量以及它们是否存在于数组中。
<?php
$numbers = array(1,2,3,4,5,6,7,8,9,10,11);
$number_of_rows = ceil(count($numbers) / 3);
$counter = 0;
for($i = 0 ; $i < $number_of_rows; $i++){
echo "<div class='row-".($i)."'>\n";
for($item = 3; $item > 0; $item--){
if(array_key_exists($counter , $numbers)){
echo "<p>".$numbers[$counter]."</p>\n";
}
$counter++;
}
echo "</div>\n";
}
?>
推荐阅读
- java - 通过不更改其原始位置对大写和小写字母进行排序
- meshlab - 如何将 xyz 点转换为 xyz 球体
- javascript - Handling new websocket connections in express-ws
- oracle11g - Use edition based redefinition from oracle with liquibase
- python - Scrapy 错误(不支持的 url 方案 javascript)
- build - 如果它们已经存在,如何停止 cmake 重建静态库
- c++ - 如何在 C++ 中的 .txt 文件中查找值?
- sql - 我如何过滤掉SQL中的重复行
- vba - 如何在文档设置为从右到左的 MS Word 表中查找列数
- python - 如何组合包含按位数据的列?