Zerguwa, как я понял, сортироваться категории будут как есть - "Имя Фамилия":
Лазарь Шлагбаум
Лена Головач
Песя Ватман
а выводиться "Фамилия Имя":
Шлагбаум Лазарь
Головач Лена
Ватман Песя
Правильно? Неправильно! Фамилии будут уже не по алфавиту, так как сортировка произошла по именам. Далее - как это исправить.
Начнём с простого. Поменять местами два слова в строке (фамилию и имя) - элементарно. В коде из поста #17 вместо:
echo $row['name'].'<br>';
напишите:
$names = explode(' ', $row['name']);
echo $names[1].' '.$names[0].'<br>';
Но если хотите, чтобы сортировалось именно по фамилиям, хотя фамилия является вторым словом в строке, то тогда так:
$names = explode(' ', $row['name']);
$names_arr[] = $names[1].' '.$names[0]; //Не выводим, а добавляем в массив
} //Это конец вашего цикла foreach
//А уже за циклом сортируем
sort($names_arr);
//И выводим
for($i = 0; $i<count($names_arr); $i++) {
echo $names_arr[$i].'<br>';
}
Вот и получится:
Ватман Песя
Головач Лена
Шлагбаум Лазарь
И, естественно, строка:
'orderby' => array('name', 'ASC'),
теряет смысл, поэтому её нужно убрать.