显示不等数量的数据?

时间:2013-09-24 05:41:23

标签: php

我有这个小问题,虽然它很小我似乎无法解决它,我需要显示的数据集,比如1到17.我需要连续显示3个像1,2 3,在一行中,4,5,6在下一行,因为bootstrap行支持12列,每个有3列3个元素。

因为数据量可以变化而且数据总数不会像示例那样分为3,所以我怎样才能在PHP中编写一些能够连续显示数据的东西,就像在这个例子中一样是5行3,最后一行是2行。

由于

编辑:

我没有写任何代码,但是想到了一个循环和一个嵌套循环,但是认为这样做太笨重了吗?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码:

for($i = 1;$i<=17;$i++){
    if($i%3 !=1 && $i%3 != 0){
        print_r($i." , ");
    }else if( $i%3 == 0){
        print_r($i);
    }
    else{
        print_r("<br/>".$i." , ");
    }
}

它会给你这样的输出:

1 , 2 , 3
4 , 5 , 6
7 , 8 , 9
10 , 11 , 12
13 , 14 , 15
16 , 17 ,

答案 1 :(得分:0)

Rukshan你可以使用模数运算符。 您可以使用以下代码作为示例。我混合了html和php,但它只是向你展示一个例子: -

<?php
echo "<table>";
for($i=1;$i<18;$i++)
{
  echo "<tr>";
  echo "<td>".$i."</td>";
  if($i%3 == 0) echo "</tr>";
}
echo "</table>";
?>

答案 2 :(得分:0)

尝试使用array_slice()根据需要对阵列进行切片。您将获得阵列中的分区。循环遍历它们以创建你的桌子。

参考示例

  $stores = array(1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12);
  $division = ceil( count($stores) / 3 ); //to divide array into 3 halves
  $firstHalf = array_slice($stores, 0, $division);
  $secondHalf = array_slice($stores, $division, $division);
  $thirdHalf = array_slice($stores, $division * 2);

$stores = array(1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12)

的输出
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

Array
(
    [0] => 5
    [1] => 6
    [2] => 7
    [3] => 8
)

Array
(
    [0] => 10
    [1] => 11
    [2] => 12
)

$stores = array(1, 2, 3, 4, 5, 6, 7, 8, 10)

的输出
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

Array
(
    [0] => 5
    [1] => 6
    [2] => 7
    [3] => 8
)

Array
(
    [0] => 9
    [1] => 10
)

$stores = array(1, 2, 3, 4, 5, 6, 7, 8);

的输出
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

Array
(
    [0] => 4
    [1] => 5
    [2] => 6
)

Array
(
    [0] => 7
    [1] => 8
)

要将数组分成两半,您可以使用

$division = ceil( count($stores) / 2 );
$firstHalf = array_slice($stores, 0, $division);
$secondHalf = array_slice($stores, $division);