-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
1 | |
Сортировка строк по алфавиту НЕ по первой букве (номер буквы указывается пользователем)25.05.2019, 15:57. Показов 4222. Ответов 10
Метки нет (Все метки)
Здравствуйте!
Столкнулся с такой задачей: Требуется отсортировать массив строк по k-ой букве. При помощи функции asort() можно отсортировать массив строк по первой букве, но вот как мне это сделать по второй, третьей или же десятой, к примеру, букве?
0
|
25.05.2019, 15:57 | |
Ответы с готовыми решениями:
10
Сортировка по алфавиту по первой букве Сортировка слов по первой букве по алфавиту в тексте Отсортировать слова по алфавиту по первой букве Ввести строку, вывести слова по алфавиту (по первой букве) |
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
25.05.2019, 16:30 | 2 | |||||
1
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
25.05.2019, 16:36 [ТС] | 3 |
Jodah, если вас не затруднит, поясните, пожалуйста, как это работает
Добавлено через 4 минуты И работает почему-то странно... Считываю строки из файла, вот они: мама сергей полка шкаф обои петрович артемий яблоко банан А сортирует по второй литере так: array(9) { [0]=> string(14) "сергей " [1]=> string(10) "шкаф " [2]=> string(14) "яблоко " [3]=> string(16) "артемий " [4]=> string(10) "банан" [5]=> string(10) "мама " [6]=> string(10) "обои " [7]=> string(12) "полка " [8]=> string(18) "петрович " }
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
25.05.2019, 16:36 | 4 |
Imperion, в usort вторым параметром передаётся функция, в которую PHP передаёт параметры для сравнения. По каким параметрам сравнивать - решаете вы. Нужно только вернуть из функции:
1 если $v1 > $v2 0 если $v1 == $v2 -1 если $v1 < $v2 Ну и mb_substr вырезает символ по его порядковому номеру.
1
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
||||||
25.05.2019, 16:38 [ТС] | 5 | |||||
Ну вот он сам код, немного подправил под свои переменные, но почему-то не работает так, как должен
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
25.05.2019, 16:41 [ТС] | 6 |
Ввожу абсолютно любые номера литер 1, 2, 3 - при любом раскладе сортируется неверно, сам файл прикрепил к этому комментарию
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
25.05.2019, 16:41 | 7 | |||||
Imperion,
Код
банан мама обои яблоко сергей петрович шкаф полка артемий var_dump($arr) до сортировки.
0
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
25.05.2019, 16:45 [ТС] | 8 |
Jodah, array(9) { [0]=> string(10) "мама " [1]=> string(14) "сергей " [2]=> string(12) "полка " [3]=> string(10) "шкаф " [4]=> string(10) "обои " [5]=> string(18) "петрович " [6]=> string(16) "артемий " [7]=> string(14) "яблоко " [8]=> string(10) "банан" }
Добавлено через 48 секунд Последовательность та же, что и в файле, кодировка везде utf-8
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
||||||
25.05.2019, 16:53 | 9 | |||||
Сообщение было отмечено Imperion как решение
Решение
Imperion, добавьте в начало скрипта:
1
|
-44 / 2 / 3
Регистрация: 22.12.2015
Сообщений: 508
|
|
25.05.2019, 16:55 [ТС] | 10 |
Jodah, сработало!) Чтож за попа боль то с этими кодировками на php)
0
|
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
|
|
25.05.2019, 17:04 | 11 |
Imperion, в версии PHP 5.6, вышедшей 5 лет назад, этой проблемы нет.
0
|
25.05.2019, 17:04 | |
25.05.2019, 17:04 | |
Помогаю со студенческими работами здесь
11
Преобразовать строку, отсортировав слова по первой букве (по алфавиту) Сортировка по первой букве Сортировка по первой букве Сортировка по первой букве в строке. Сортировка слов в строке по первой букве Сортировка массива слов по первой букве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |