Я знаю, что существуют функции natsort () и natcasasort () для сортировки элементов массива в естественном порядке. Я пытаюсь сортировать следующие элементы. < /P>
array[0] = '10. xyz';
array[1] = '13. xyz';
array[2] = '2. xyz';
array[3] = '1a. xyz';
array[4] = '6. xyz';
array[5] = '1b. xyz';
array[6] = '4a. xyz';
array[7] = '4b. xyz';
Если я применяю natsort () , '10 .. 'и '13 ..' размещены выше '1a ..'. Как я могу заставить свой код PHP думать, что '10 .. 'больше, чем' 1a ... 'и' 1a ... 'должен быть наверху? < /P>
желаемый результат : < /p>
'1a. xyz';
'1b. xyz';
'2. xyz';
'4a. xyz';
'4b. xyz';
'6. xyz';
'10. xyz';
'13. xyz';
< /code>
Я использовал пользовательский алгоритм, но он делает то же самое ... он помещает '10 .. 'до' 1a ... '. вот мой пользовательский фанк: < /p>
function cmp($a, $b) {
$a_ex = explode(".", $a);
$b_ex = explode(".", $b);
if ($a_ex[0] == $b_ex[0] ) {
return 0;
}
return ($a_ex[0] < $b_ex[0]) ? -1 : 1;
}
Подробнее здесь: https://stackoverflow.com/questions/829 ... -naturally
Сортируйте множество буквенно -цифровых струн естественным образом ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1739710797
Anonymous
Я знаю, что существуют функции natsort () и natcasasort () для сортировки элементов массива в естественном порядке. Я пытаюсь сортировать следующие элементы. < /P>
array[0] = '10. xyz';
array[1] = '13. xyz';
array[2] = '2. xyz';
array[3] = '1a. xyz';
array[4] = '6. xyz';
array[5] = '1b. xyz';
array[6] = '4a. xyz';
array[7] = '4b. xyz';
Если я применяю natsort () , '10 .. 'и '13 ..' размещены выше '1a ..'. Как я могу заставить свой код PHP думать, что '10 .. 'больше, чем' 1a ... 'и' 1a ... 'должен быть наверху? < /P>
желаемый результат : < /p>
'1a. xyz';
'1b. xyz';
'2. xyz';
'4a. xyz';
'4b. xyz';
'6. xyz';
'10. xyz';
'13. xyz';
< /code>
Я использовал пользовательский алгоритм, но он делает то же самое ... он помещает '10 .. 'до' 1a ... '. вот мой пользовательский фанк: < /p>
function cmp($a, $b) {
$a_ex = explode(".", $a);
$b_ex = explode(".", $b);
if ($a_ex[0] == $b_ex[0] ) {
return 0;
}
return ($a_ex[0] < $b_ex[0]) ? -1 : 1;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/8295819/sort-an-array-of-alphanumeric-strings-naturally[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия