Sortieren Sie eine Reihe alphanumerischer Strings natürlichPhp

PHP-Programmierer chatten hier
Anonymous
 Sortieren Sie eine Reihe alphanumerischer Strings natürlich

Post by Anonymous »

Ich weiß, dass es natsort () und natcaseSort () -Funktionen gibt, um Array -Elemente in natürlicher Reihenfolge zu sortieren. Ich versuche die folgenden Elemente zu sortieren. < /P>

Code: Select all

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';
Wenn ich natsort () , '10 .. 'und '13 ..' anwende, werden über '1a ..' platziert. Wie kann ich meinen PHP -Code erstellen, um zu denken, dass '10 .. 'größer als' 1a ... 'und' 1a ... 'oben sein sollte? < /P>
gewünschtes Ergebnis : < /p>

Code: Select all

'1a. xyz';
'1b. xyz';
'2. xyz';
'4a. xyz';
'4b. xyz';
'6. xyz';
'10. xyz';
'13. xyz';
< /code>
Ich habe einen benutzerdefinierten Algorithmus verwendet, aber es tut dasselbe ... es platziert '10 .. 'Before' 1a ... '. Hier ist mein benutzerdefinierter Funktion: < /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;
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post