显示不等数量的数据?

I have this small problem although it's small i can't seem to work it out, I've set of data i need to display, lets say 1 to 17. i need to display 3 in a row like 1,2,3 in one row and 4,5,6 in the next because bootstrap row support 12 columns and there are 3 elements of 4 columns each.

Because the amount of data can vary and the total number of data won't divide by 3 like the example it's 17 how can I write something in PHP that will display the data 3 in a row and like in this example there will be 5 rows of 3 and a last row having 2 sets.

Thanks

Edit:

I didn't write any code of this but was thinking a loop and a nested loop but think that's too clunky any better way of doing this?

You can use following code :

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." , ");
    }
}

It'll give you output like this:

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

Rukshan you can use the modulus operator. You can use the code below as an example. I have mixed html and php, but it is just to show you an example:--

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

Try using array_slice() to slice your array as per your need. You will get your division in arrays. Loop through them to create your table.

Reference Example

  $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);

Output for $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
)

Output for $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
)

Output for $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
)

To divide the array in two halves you can use

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