2014-06-29 4 views
1

Я немного застрял в этом, что может показаться немым на данный момент.Отображение данных в таблице в 3 столбцах, N количество строк

У меня есть набор массивов, которые могут иметь любое количество элементов может быть от 6 до N

Я не могу изменить структуру сайта прямо сейчас, но это сделано с загрузочном отзывчивым таблицы. Мне нужно отобразить каждый элемент в таблице, но максимум 3 столбца с N количеством строк.

Как это

enter image description here

Я сделал это для того, чтобы получить количество строк

$rows=ceil(count($array)/3); 

Тогда я сделать пару для для отображения таблицы в том, что распределение

for($i=0; $i<$rows; $i++) { 
<tr> 
    for($j=0;$j<3;$j++){ 
     <td>Value</td> 
    } 
</tr> 
} 

До сих пор все хорошо, проблема в том, что мне нужно получить доступ к ключи массива от 0 до N и я не понял, как

+0

использование 'Еогеасп ($ массив в $ строки)' – Hardy

+0

@Hardy как что собирается помочь мне показать его в 3-х строк? если я использовал ли или div, это нормально, но структура таблицы отличается. – DannyG

ответ

0

мне удалось сделать это с помощью array_key_exists и счетчик.

$key = 0; 
for($i=0; $i<$rows; $i++) { 
<tr> 
    for($j=0;$j<3;$j++){ 
     if (array_key_exists($key, $array)) { 
     <td>echo $array[$key]</td> // if the index is in the array print the column 
     } 
    } 
</tr> 
} 
0

Попробуйте так:

foreach($array as $val)) { 

    echo '<div class="col-md-4">' . $val . '</div>';  

} 

Если ваш сайт «Сетка» имеет 12 COLS, вы можете просто использовать классы, как col-sm-4, col-md-4 и т.д. чтобы разделить ваши элементы на 3 столбца. Проверьте самозагрузки руководство для получения дополнительной информации: http://getbootstrap.com/css/

+0

Невозможно изменить макет, если бы я мог это работать. – DannyG

0

Не тестировался, но логика-то вроде этого:

$i = 0; 
foreach ($array as $a) 
{ 
    if($i == 0 || $i % 3 == 0) 
    { 
     if ($i % 3 == 0) 
     { 
      echo "</tr>"; 
     } 
     echo "<tr>"; 
    } 
    echo "<td>" . $a . "</td>"; 
    $i++; 
} 
echo "</tr>"; 
+0

Ваш пробег первым начинает – Hardy

+0

@ Харди действительно? Он начинается с $ i = 0, а затем вводится первый, если я повторяю «». –

+0

Да, моя ошибка .. :) – Hardy

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