Отобразить результат столбца как результат строки php

#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. Поскольку вы утверждаете, что мой код можно использовать, и поэтому он правильный, я еще больше не понимаю понижения.