Kohana Вывод в три колонки с сортировкой

rusbear28

Новичок
Здравствуйте!

Делаю вывод категорий в футере (фреймворк kohana):

PHP:
$hl = $this->hard_levels (); // get categories
$t = "";
foreach ($hl AS $item)
{
$discip = $this->sub_disciplines ($item["id"]);
$i = 0;
$sub_d = '<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><tr>'; 
        $cols = 0; 
        $maxcols = 3;
        foreach ($discip AS $discip_item)
        {
            ++$cols;
            $sub_d .= '<td width="25%" valign="top" style="font-size:11px;">';
            $sub_d .= $discip_item["discipline"];
            $sub_d .= '</td>';
            if ($cols == $maxcols) { 
                $sub_d .= "</tr>\n<tr>"; 
                $cols = 0; 
            }
            $i++;
        }
$sub_d .= "</table>";
$t .= '<div><a href="/hard_level/' . $item["id"] . '" style="color:#505050;font-size:14px;"><strong><u>' . $item["hard_level"] . '</u></strong></a></div>' . $sub_d . '<br>';
}

echo $t;
Данные выводятся так:
1 | 2 | 3
4 | 5 | 6
...
10 | 11 | 12
т.е. каждая новая запись располагается в следующей ячейке следующего столбца.

Необходимо выводить так: второй столбец продолжает первый, третий столбец продолжает второй

1 | 4 | 7
2 | 5 | 8
3 | 6 | 9
...
Подскажите, как модифицировать мой скрипт чтобы выводить в нужном порядке?
 

Gremboloid

инженера Гр...
1.Разбить массив на $maxcols массивов , и цикл по строкам.
2. Высчислить кол-ко строк при $maxcols столбцов, и смещение (ключ элемента в массиве, с которого начинается след. столбец или столбцы), цикл по строкам. При условии что ключи последовательны

так же надо учесть что в последнем столбце может не хватать элементов равное min(кол-во строк; кол-во столбцов) - 1
 

WMix

герр M:)ller
Партнер клуба
PHP:
$a=array(1,2,3,4,5,6,7,8,9);

$div = count($a)/3;
echo '<table border="1">';
for( $i=0; $i<count($a)/$div; $i++){
	echo '<tr>';
	echo '<td>'.$a[$i] .'</td><td>'.$a[$i+$div] .'</td><td>'.$a[$i+2*$div] .'</td>';
	echo '</tr>';
}
echo '</table>';
 

Absinthe

жожо
Делаю вывод категорий в футере (фреймворк kohana)
А я бы просто сделал это версткой.

Блок шириной 3x ячейки: содержит плавающие(к левому краю) блоки шириной x ячеек.
 
Сверху