#php
#php
Вопрос:
Я уверен, что заголовок даже не подходит для этого. Вот в чем проблема, у меня есть 3 столбца и 6 результатов, которые отображаются следующим образом
Column1 Column2 Column3
result1 result3 result5
result2 result4 result6
но они нужны вот так
Column1 Column2 Column3
result1 result2 result3
result4 result5 result6
мой массив содержит все 6 результатов, и пока я вижу, что мне нужно выбрать каждый 0 и 2-й для отображения в столбце 1 и продолжить (массив начинается с 0).
код довольно большой, но основная часть для переключения результатов находится здесь
$count = count($result);
for ($result = 0; $result < $count; $result ) {
$getorder= "";
if ($count != 1) {
if ($result == 0) $getorder= "first";
if ($result == $count - 1) $getorder= "last";
}
echo '<div class="'.$getorder.'width'.intval(100 / $count).'">'.$mycolumn[$result].'</div>';
}
так что здесь должно быть какое-то разделение. Вот просто тупой пример
$mycolumn[$result % X == X]
надеюсь, я вас не запутал, и вы поняли идею. Если вы спросите себя, почему я просто не делаю строки вместо столбцов, ответ — полная реконструкция css. как я понял, я могу настроить таргетинг на результаты и сохранить столбцы и css такими, какие они есть
Комментарии:
1. Почему вы не используете a
<table>
? Это именно то, для чего они используются.2. таблицы cmon? ни в коем случае, должен оставаться с divs
3. Почему? Таблицы неплохие, когда используются для табличных данных.
Ответ №1:
Не используйте ($result / 3)
, так как у вас могут возникнуть серьезные проблемы с округлением. Поскольку мне не очень понятно название ваших переменных, я отправляю вам общий код php, и он:
echo '<div class="result">';
for($i = 0; $i < $columnNum; $i )
{
echo '<div class="column">';
for($j = $i; $j < $resultNum; $j = $columnNum)
echo '<label class="value">' . array[j] . "</label>";
echo '</div>';
}
echo '</div>';
Просто измените имя vars в соответствии с вашими потребностями, и это решение вашей проблемы.
Комментарии:
1. это не ответ, а комментарий
2. @PeterSzymkowski Абсолютно неверно. Это решение его проблемы. Каким может быть комментарий? Если OP изменит имена переменных, это будет делать именно то, что он хочет сделать.
3. Спасибо! сотрудник joomla @AurelioDeRosa Питер тоже был прав, но я не понимаю, в чем проблема с его стороны, это просто сделало это $mycolumn [($result / 3) $result % 3] как вы думаете, это неправильно?
Ответ №2:
$mycolumn[intval($result / 3) intval(($result % 3) * $count / 3)]
Демонстрация http://codepad.viper-7.com/hdSi6b
Работает безупречно.
Вы можете изменить весь код, как сказал AurelioDeRosa.
Комментарии:
1. Поскольку вы утверждаете, что мой код можно использовать, и поэтому он правильный, я еще больше не понимаю понижения.