Отображение данных в таблице в 3 столбцах, N количество строк

#php #html #arrays

#php #HTML #массивы

Вопрос:

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

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

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

Вот так

введите описание изображения здесь

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

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

Затем я делаю пару for для отображения таблицы в этом дистрибутиве

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

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

Комментарии:

1. использование foreach($array as $row)

2. @Hardy как это поможет мне отобразить его в 3 строки? если бы я использовал li или div, все в порядке, но структура таблицы отличается.

Ответ №1:

Не проверено, но логика примерно такая:

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

Комментарии:

1. У вас отсутствует первый запуск <tr>

2. @Hardy серьезно ? Он начинается с $i = 0, а затем введите первый if, где я повторяю «<tr>».

Ответ №2:

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

 foreach($array as $val)) {

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

}
  

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

Комментарии:

1. Не могу изменить макет, если бы я мог, это могло бы сработать.

Ответ №3:

Мне удалось сделать это с помощью 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>
}