
Можно примерчик???
$array = [];
$sql = "
SELECT
cit,
LEFT(cit, 1) AS FirstLetter
FROM
`cit`
ORDER BY
FirstLetter,
cit
";
$stmt = $pdo->query($sql);
while ($value = $stmt->fetch(PDO::FETCH_ASSOC))
{
$array[ $value['FirstLetter'] ][] = $value['cit'];
}
if (count($array)){
$fullHtml = '';
foreach ($array AS $FirstLetter => $cityArray){
$fullHtml .= set_veiw( $cityArray, $FirstLetter );
}
}
echo $fullHtml;
function set_veiw( $cityArray, $FirstLetter = '' ) {
$count = count($cityArray);
$colum = 4;
if ($count <= 4) // Меньше 5 это одна колонка , ну и т.д
$colum = 1;
elseif ($count <= 8)
$colum = 2;
elseif ($count <= 12)
$colum = 3;
/*
echo '<pre>';
echo count($cityArray);
print_r(array_chunk($cityArray, ceil($count / $colum)));
echo '</pre>';
*/
$html = '<div class="col-sm-12"><b>'. $FirstLetter .'</b></div>';
// Делим массив
foreach (array_chunk($cityArray, ceil($count / $colum)) AS $array){
$html .= '<div class="col-xs-12 col-sm-6 col-md-3">';
foreach ($array AS $cityName){
$html .= $cityName. '<br>';
}
$html .= '</div>';
}
return $html;
}