Возможно, вам лучше сделать это в SQL,
SELECT Title,
CASE WHEN SUBSTRING_INDEX(Title, ' ', 1)
IN ('a', 'an', 'the')
THEN CONCAT(
SUBSTRING(Title, INSTR(Title, ' ') + 1),
', ',
SUBSTRING_INDEX(Title, ' ', 1)
)
ELSE Title
END AS TitleSort
FROM music
ORDER BY TitleSort
Есть статья , которая также описывает это более подробно.
Большим преимуществом по сравнению с изложенным вами подходом является то, что вы сначала вытаскиваете ВСЕ записи, что изощренно портит вас, как с точки зрения производительности, так и с точки зрения пользовательского интерфейса (я думаю о таких ситуациях, как попытка пролистать страницы). через большой набор песен).