Co rozumiesz przez pojęcie "raz po imieniu a raz po nazwisku"? Chodzi o możliwość wyboru, względem czego sortować? Po stronie PHP myślę, że bardziej nada się tu funkcja
usort(), gdzie możesz zaproponować własną funkcję porównującą elementy:
<?php
function porownywanie($a, $b)
{
return strcmp($a['imie'], $b['imie']); }
usort($tablica, 'porownywanie'); ?>
Używając kilku funkcji lub konfigurowalnej klasy, możesz w ten sposób zrobić sortowanie względem normalnego pola. Mimo to polecałbym jednak takie operacje robić już na etapie pobierania danych z bazy, gdzie takie sortowanie może być dużo szybsze dzięki indeksom.