Сортируйте множество буквенно -цифровых струн естественным образомPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сортируйте множество буквенно -цифровых струн естественным образом

Сообщение 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;
}


Подробнее здесь: https://stackoverflow.com/questions/829 ... -naturally
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»