<?php function toCols($data, $cols = 2, $tpl = 'ul > li') { $tpl = array_map(function($item) { return trim($item); }, explode('>', $tpl)); $result = array(); while(count($data) > $cols) { array_push($result, array_splice($data, 0, $cols)); } array_push($result, $data); return "<{$tpl[0]}>".implode("</{$tpl[0]}><{$tpl[0]}>", array_map(function($item) use ($tpl) { return "<{$tpl[1]}>".implode("</{$tpl[1]}><{$tpl[1]}>", $item)."</{$tpl[1]}>"; }, $result))."</{$tpl[0]}>"; } $arr = array('Адлер', 'Александров', 'Анапа', 'Белгород', 'Галич', 'Гатчина', 'Елец', 'Дубна', 'Киров'); echo toCols($arr, 2);
Вот такой вариант деления на колонки, только что придумал :-D