#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>
}