2013-09-24 5 views
0

У меня есть эта небольшая проблема, хотя она маленькая, я не могу ее обработать, у меня есть набор данных, которые мне нужно отображать, скажем, от 1 до 17. Мне нужно отображать 3 строки, например, 1,2, 3 в одной строке и 4,5,6 в следующем, потому что строка бутстрапа поддерживает 12 столбцов и есть 3 элемента по 4 столбца каждый.Отображается неравный объем данных?

Поскольку объем данных может варьироваться, и общее количество данных не будет делить на 3, как пример 17, как я могу написать что-то на PHP, который будет отображать данные 3 в строке и, как в этом примере, будет 5 строк из 3 и последняя строка, имеющая 2 набора.

Благодаря

Edit:

Я не писать код этого, но имел в виду цикл и вложенный цикл, но думаю, что это слишком неуклюжим ли лучший способ сделать это?

ответ

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 , 
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>"; 
?> 
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); 
+0

да спасибо, но затем, если есть 300 количество данных, то я должен идти вечно до 99 половинок не есть? – rksh

+0

Нет, вы можете использовать цикл для генерации половинок. Вышеупомянутое - это просто, например, дать вам концепцию. – Konsole

Смежные вопросы