Я хочу отсортировать массив слов по алфавиту. К сожалению, на моем языке (хорватский) есть буквы с двумя символами (например, lj, nj, dž) и буквы, которые неправильно сортируются с помощью функции сортировки php (например, č, ć, ž, š, đ).
Вот правильный хорватский алфавит (с некоторыми английскими буквами):
$alphabet = array( 'a', 'b', 'c', 'č', 'ć', 'd', 'dž', 'đ', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'lj', 'm', 'n', 'nj', 'o', 'p', 'q', 'r', 's', 'š', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'ž' );
И вот список слов, также правильно упорядоченных:
$words = array( 'alfa', 'beta', 'car', 'čvarci', 'ćup', 'drvo', 'džem', 'đak', 'endem', 'fićo', 'grah', 'hrana', 'idealan', 'jabuka', 'koza', 'lijep', 'ljestve', 'mango', 'nebo', 'njezin', 'obrva', 'pivnica', 'qwerty', 'riba', 'sir', 'šaran', 'tikva', 'umanjenica', 'večera', 'wind', 'x-ray', 'yellow', 'zakaj', 'žena' );
Я думал о способах его сортировки. Один из способов заключался в том, чтобы разделить каждое слово на буквы. Поскольку я не знал, как это сделать из-за многохарактерных писем, я задал вопрос и получил хороший ответ, который решил эту проблему ( см. Здесь ). Поэтому я перебирал массив и разбивал каждое слово на буквы, используя код, предоставленный лучшим ответчиком. Когда массив был зациклен, у меня появился новый массив ( $words_splitted
его $words_splitted
). Элементами этого массива были также массивы, каждый из которых представлял слово.
Array ( [0] => Array ( [0] => a [1] => l [2] => f [3] => a ) [1] => Array ( [0] => b [1] => e [2] => t [3] => a ) [2] => Array ( [0] => c [1] => a [2] => r )... ...[16] => Array ( [0] => lj [1] => e [2] => s [3] => t [4] => v [5] => e )
Идея состояла в том, чтобы сравнить каждую букву каждого массива по значению индекса переменной $alphabet
. Например, $words_splitted[0][0]
будет сравниваться с $words_splitted[1][0]
, а затем с $words_splitted[2][0]
и т. Д. Если мы сравним буквы «a» и «b», буква «a» имеет меньшее число индексов в переменной $alphabet
, поэтому она предшествует «b».
К сожалению, я застрял … и я не уверен, как это сделать. Есть идеи?
ПРИМЕЧАНИЕ. Расширения PHP не должны использоваться.