• 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ß
 
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 )
 
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 :)
 
Zurück
Oben