Исходники "принц персии"Гроза!

Алгоритм перевёртыш построчный в колонки

Есть список, который нужно вывести в несколько колонок не более сколько-то в ряд. Для вывода используются поплавки. Но выводить нужно отсортированными сверху-внизу, по колонкам.
То есть, нужно прорядить как-бы массив, переставить местами.
Вот набросал код на php, работает здесь //go2all.ru/ (в лого кнопка "выбрать"):

            $countRows = 9;
            $list_out = array();
            $columns = ceil(sizeof($list)/$countRows);
            for ($i=0; $i < $countRows; $i++) {
	      for ($j=0; $j < $columns; $j++) {
                	$e = $list[($j*$countRows)+$i];
                	if (isset($e)) {
	                	$list_out[] = $e;
	                }
                }
            }
            if (sizeof($list_out) < $columns*$countRows) {             	for ($i=($columns*$countRows)-$columns; $i > floor(sizeof($list_out)/$countRows)*$countRows; $i-=$columns) {
            		array_splice($list_out, $i-1, 0, array("empty" => ''));
            	}
            }