Odnalazłem rozwiązane zaproponowane przez nospor
http://nospor.pl/grupowanie-wynikow.htmlale mam z nim problem. Wszystko działa oprócz tego, żę nie wyświetla się alfabetycznie. Bo ja mam w taeli link tj każdy zaczyna się od http/https czy pierwsza litera do zawsze H. Mam też kolumne z nazwą i chciałem posortować według niej, ale niestety nie dało to rezultatów:
$sql = 'select link,nazwa from test_site '.
'order by nazwa asc'; //sortujemy po nazwie
//najpierw pozyskamy niezbędne dane
$string = $row['link'];
preg_match('@^(?:http://)?([^/]+)@i', $string, $matches); $host = $matches[1];
$name = $matches[0];
//jeśli będziemy w bazie mieli miasta z nazwami zaczynającymi
//się od polskich liter należy użyć modułu mb_string
//jeśli nie było jeszcze danej litery, to ją tworzymy
if (!isset($cities[$firstLetter])) $cities[$firstLetter] = array();
//dodajemy kolejne miasta do danej litery
$cities[$firstLetter][] = $name;
}
foreach ($cities as $letter => $_cities){ //petla, która leci po literach
echo '<p class="scam">'.$letter.'</p>'; foreach ($_cities as $city){ //pętla, która leci po miastach w literze
}
}
Edit: Problem z sortowaniem udało mi się rozwiązać miałem białe znaki przed 4 nazwami

Ale mam kolejny problem. Po literze A występuję duża odlęgłość:

Ma ktoś pomysł czym to może być spowodowane? Przy innych literach/liczbach tego nie ma.
Edit2: Temat do zamknięcia