好的,对不起,如果这是一个愚蠢的问题,我在谷歌上花了很多时间,但我找不到任何东西,可能是因为我不知道正确的关键字。
我需要创建一个这样的列表:
一些标题:
项目 1 项目 6
第 2 项 第 7 项
第 3 项 第 8 项
第 4 项
第 5 项
我需要循环一个数据数组,然后在达到限制时将其设为 2 列,因此这与模板的结果相同。
我很想展示一个详细的图像,但我没有足够的声誉来做这件事。所以希望你能理解。
如果您知道解决方案,请帮助我。
非常感谢您。
好的,对不起,如果这是一个愚蠢的问题,我在谷歌上花了很多时间,但我找不到任何东西,可能是因为我不知道正确的关键字。
我需要创建一个这样的列表:
一些标题:
项目 1 项目 6
第 2 项 第 7 项
第 3 项 第 8 项
第 4 项
第 5 项
我需要循环一个数据数组,然后在达到限制时将其设为 2 列,因此这与模板的结果相同。
我很想展示一个详细的图像,但我没有足够的声誉来做这件事。所以希望你能理解。
如果您知道解决方案,请帮助我。
非常感谢您。
array_chunk()
&可能array_map()
(取决于您真正想要的方式)可以成为您的朋友:
php > $array = range(1,8);
php > $chunked = array_chunk($array,5);
php > var_dump($chunked);
array(2) {
[0] =>
array(5) {
[0] =>
int(1)
[1] =>
int(2)
[2] =>
int(3)
[3] =>
int(4)
[4] =>
int(5)
}
[1] =>
array(3) {
[0] =>
int(6)
[1] =>
int(7)
[2] =>
int(8)
}
}
php > array_unshift($chunked,NULL);
php > var_dump(call_user_func_array('array_map',$chunked));
array(5) {
[0] =>
array(2) {
[0] =>
int(1)
[1] =>
int(6)
}
[1] =>
array(2) {
[0] =>
int(2)
[1] =>
int(7)
}
[2] =>
array(2) {
[0] =>
int(3)
[1] =>
int(8)
}
[3] =>
array(2) {
[0] =>
int(4)
[1] =>
NULL
}
[4] =>
array(2) {
[0] =>
int(5)
[1] =>
NULL
}
}
您需要将您的项目放在一个具有从 开始的连续数字索引的数组中0
,如果您还没有这个,您可以使用array_values($array)
.
// assuming $array is set with your input array
$limit = 5; // set the row limit here
$count = count($array);
for ($i = 0; $i < $limit; $i++)
{
for ($e = 0; $e < $count; $e += $limit)
{
if (isset($array[$e]))
echo $array[$e] . "\t";
}
echo "\n";
}