<?php function toCols($data, $cols = 2, $tpl = 'u

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