функция принимает массив с любым кол-вом элементов и кол-во столбцов. Возвращает html-таблицу с отсортированными элементами, размещёнными по вертикали. Всё отлично пока кол-во столбцов меньше 5. Начиная от пяти, при любом раскладе выводится 6 столбцов. PHP: <?php function showTable($elements, $cols = 3){ sort($elements); $size = sizeof($elements); $elementsInCol = floor($size/$cols); $html = "<table border='1'>\n<tr>\n"; $cells = $elementsInCol * $cols; for($row = $pos = $i = 0; $i < $cells; $i++, $pos += $elementsInCol) { if($pos >= $size) { $pos = ++$row; $html .= "</tr>\n<tr>\n\n"; } $html .= "\t<td>".$elements[$pos]."</td>\n"; } $html .= "</tr>\n</table>"; return $html; } $cols = 3; $elements = array('C', 'A', 'B', 'G', 'H', 'F', 'D', 'E', 'I', 'J', 'Z', 'Y'); echo showTable($elements, $cols); вообще даже на бумаге хрень какая-то. допустим есть массив: A B C D E F G H I J Y Z - 12 элементов делим на 5 столбцов: если по 2 элемента в столбце - получается A C E G I Y B D F H J Z -- 6 столбцов. не влезает. если по 3 элемента в столбце: A D G J B E H Y C F I Z -- 4 столбца. 5-ый просто пустой! Можно предположить что это правильно, хоть и нерационально. Ща буду думать как это сделать