我必须迭代一个数组并显示它的项目。我必须对它进行分页,以便我可以渲染一个分页器。 paginator结构类似于:
<div class='paginator'>
<div class="page">
<img src="path/to/picture"/>
<img src="path/to/picture"/>
<img src="path/to/picture"/>
<img src="path/to/picture"/>
</div>
<div class="page">
<img src="path/to/picture"/>
<img src="path/to/picture"/>
<img src="path/to/picture"/>
<img src="path/to/picture"/>
</div>
</div>
最后,我有一个带有路径的PHP数组。我想要这样的东西:
echo "<div class='paginator'>";
for ($i = 0; $i < 3; $i++) {
echo "<div class='page'>";
for($j = 0; $j < 4; $j++) {
echo "<img src='" . $arr[$i * $j] . "'/>"
}
echo "</div>
}
echo "</div>";
但是,它不起作用。我正在做错误的循环,我无法弄清楚它们应该如何。
答案 0 :(得分:3)
假设你的问题不仅仅是一个简单的sintax问题
$arr[$i * 4 + $j]
代替
$arr[$i * $j]
其中“4”是每行的大小。
看看这个例子
0 1 2 3 (4 elements in this row which starts from 0)
4 5 6 7 (this row starts from 4)
8 9 10 11 (this starts from 4 * 2)
每行以4(每行元素数)乘以行数(从0开始)开始。要迭代行中的每个元素,您必须添加行中元素的索引(示例中为$ j),因此:$index = $row_index * $elements_per_row + $column_index
答案 1 :(得分:1)
echo "<div class='paginator'>";
for ($i = 0; $i < 3; $i++) {
echo "<div class='page'>";
for($j = 0; $j < 4; $j++) {
echo "<img src='" . $arr[$i * $j] . "'/>";
}
echo "</div>";
}
echo "</div>";
你忘了用分号和引号。
答案 2 :(得分:1)
您似乎试图将$i
和$j
变量相乘,这可能不是您想要的:
echo "<img src='" . $arr[$i * $j] . "'/>"
您需要放在这里取决于$arr
数组的结构。你的意思是:
$arr[$i][$j]
这适用于具有此结构的数组(仅作为示例):
$arr[0][0] = 'page 1 image 1';
$arr[0][1] = 'page 1 image 2';
//....
$arr[1][3] = 'page 2 image 4';