• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Array sort nach substring

imoney91

Mitglied
Hallo com,

gibt es eine Möglichkeit mit Standardmitteln etwa solche Arrays zu sortieren?
Array ( [0] => frontend/extrEpub/317/41511//1006.html [1] => frontend/extrEpub/317/41511//1004.html [2] => frontend/extrEpub/317/41511//1005.html [3] => frontend/extrEpub/317/41511//1007.html [4] => frontend/extrEpub/317/41511//1000.html [5] => frontend/extrEpub/317/41511//1003.html [6] => frontend/extrEpub/317/41511//1002.html [7] => frontend/extrEpub/317/41511//1001.html )

Wie man sieht, ändern sich nur die Datei. Also es soll nach 1000.html, 1001.html, 1002.html... und so weiter rauskommen.
Ich habe es bereits mit sort() probiert, jedoch erfolglos.

gruß
 
Werbung:
grade getestet. Funktioniert mit sort() einwandfrei.

PHP:
<?php
$arr = array(
    'frontend/extrEpub/317/41511//1006.html',
    'frontend/extrEpub/317/41511//1004.html',
    'frontend/extrEpub/317/41511//1005.html',        
    'frontend/extrEpub/317/41511//1007.html',
);
sort($arr);
print_r($arr);
?>

Ausgabe:
HTML:
Array ( [0] => frontend/extrEpub/317/41511//1004.html [1] => frontend/extrEpub/317/41511//1005.html [2] => frontend/extrEpub/317/41511//1006.html [3] => frontend/extrEpub/317/41511//1007.html )
 
Werbung:
Der Rückgabewert von sort() ist ein boolean. Vergewissere dich dass du nicht so ein Konstrukt hast

PHP:
$base_array = array(5, 9, 12, 1);
$sorted_array = sort($base_array);
 
grade getestet. Funktioniert mit sort() einwandfrei.

PHP:
<?php
$arr = array(
    'frontend/extrEpub/317/41511//1006.html',
    'frontend/extrEpub/317/41511//1004.html',
    'frontend/extrEpub/317/41511//1005.html',        
    'frontend/extrEpub/317/41511//1007.html',
);
sort($arr);
print_r($arr);
?>

Ausgabe:
HTML:
Array ( [0] => frontend/extrEpub/317/41511//1004.html [1] => frontend/extrEpub/317/41511//1005.html [2] => frontend/extrEpub/317/41511//1006.html [3] => frontend/extrEpub/317/41511//1007.html )
Das geht soweit gut, bis du folgendes Array erhälst:
PHP:
$arr = array(
    'frontend/extrEpub/317/41511//1011.html',
    'frontend/extrEpub/317/41511//10100.html',
    'frontend/extrEpub/317/41511//1005.html',        
    'frontend/extrEpub/317/41511//1007.html',
);

natsort($array) bzw. sort($array, SORT_NATURAL) (ab PHP5.4) tut genau das Richtige in dem Fall :)
 
Werbung:
Zurück
Oben