Multidimensionamles array sortieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ahnung
alphabet
anfragen
array
beitrag
datei
fertige funktion
fragen
funktion
kenntnis
kopie
manual
mehreren suchkriterien
meisten funktionen
moment
ordner
post
sen
test
unterschiedliche suchkriterien
-
Ich habe ein array das wie folgt aussieht
$test[1] = array('type' => 'file', 'name' => 'b'); $test[2] = array('type' => 'file', 'name' => 'a'); $test[3] = array('type' => 'dir', 'name' => 'b'); $test[4] = array('type' => 'dir', 'name' => 'a');
bzw:
$test = array(1 => array('type' => 'file', 'name' => 'b'), 2 => array('type' => 'file', 'name' => 'a'), 3 => array('type' => 'dir', 'name' => 'b'), 4 => array('type' => 'dir', 'name' => 'a'));
Is im endeffeckt das gleiche.
Das was ich jetzt will ist das array $test nach den werten in den array sortieren undzwar mit mehreren suchkriterien. das erste sollte type sein, das zweite name. Also alle Type nach alphabet und alle types die gleich sind dann auchnoch nach name...
Am ende sollte $test dann so aussehen
$test = array(4 => array('type' => 'dir', 'name' => 'a'), 3 => array('type' => 'dir', 'name' => 'b'), 2 => array('type' => 'file', 'name' => 'a'), 1 => array('type' => 'file', 'name' => 'b'));
Ich hoffe es ist verst?ndlich, aber ich habe keine ahnung wie ich es ausdr?cken soll
Beitrag ge?ndert am 8.11.2005 16:10 von theuntouchables -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe keine Ahnung, wie man Arrays sotiert, dazu einfach mal bei php.net oder bei redcow erfrange. ;)
Aber die meisten Funktionen unterst?tzen keine Multidemensionalen Arrays, also m?ssen wir eben selber eine Funktion schreiben.
function cyCase_sort ( $a ) { if ( is_array ( $a ) ) { return ( array_map ( "cyCase_sort", $a ) ); } else { // hier die Sotierfunktion } }
MfG Lucas -
Ich habe keine fertige funktion daf?r gefunden, ansonsten h?tte ich ja hier nicht gefragt...
im grunde geht es mir sort aber da k?nnte ich nicht unterschiedliche suchkriterien angeben, deshalb suche ich... -
Ich habe keine fertige funktion daf?r gefunden, ansonsten h?tte ich ja hier nicht gefragt...
im grunde geht es mir sort aber da k?nnte ich nicht unterschiedliche suchkriterien angeben, deshalb suche ich...
Doch es geht, frag mal redcow, der hat sich noch eingehender damit besch?ftigt. ^^ -
php.net-manual
array-multisort($array, SORT_ASC)
statt SORT_ASC gibt es auch noch
SORT_STRING, SORT_NUMERIC und SORT_DESC
MfG Asmodeus
-
@asmodeus:
Mal genau lesen was ich geschrieben habe und dann genau lesen wof?r multisort da is...
Multisort kann das wa sich will nicht
@rest: solche posts bitte lassen, ich kenne mich selber gut genug mit php aus, als dass ich nicht w?sste was die normalen sort funktionen machen... -
@asmodeus:
Mal genau lesen was ich geschrieben habe und dann genau lesen wof?r multisort da is...
Multisort kann das wa sich will nicht
@rest: solche posts bitte lassen, ich kenne mich selber gut genug mit php aus, als dass ich nicht w?sste was die normalen sort funktionen machen...
Mhhh....also bis jetzt habe ich nirgendswo etwas vergleichbares gefunden. Habe selber gerad nochmal gesucht.
Eine L?sung f?r deine Frage habe ich leider nicht, nur einen Vorschlag, wie du dein Problem l?sen k?nntest.
Das "dir" und das "file" stehen ja f?r Ordner und Datei, daraus schlie?e ich mal, dass du eine Art Filemanager programmieren willst.
Versuchs doch mal so :
$handle = @opendir ( $path ); if ( $handle ) { while ( $file = @readdir ( $handle ) ) { if ( is_file ( $path.$file ) ) { // Datei $files[] = $path.$file; } else { if ( $file != '..' && $file != '.' ) { // Verzeichnis $dirs[] = $path.$file.'/'; } } } }
-
habe mal eine sortierfunktion geschrieben:
unterscheidet nicht zwischen gross/klein
kann aber im moment nicht sagen, ob es funktioniert, da das array, das ich sortieren wollte zu gross war. d.h. die sortierfunktion macht eine kopie des arrays und zwei von dieser gr?sse hat der server nicht aktzeptiert
bei kleineren multiarrays sollte sie aber funktionieren
kannst sonst per pm anfragen
Beitrag ge?ndert am 8.11.2005 21:10 von pervamon -
@lucas9991: Der Filemanager is schon seit langem fertig, ich will ihn nurnoch etwas versch?nern...
-
@lucas9991: Der Filemanager is schon seit langem fertig, ich will ihn nurnoch etwas versch?nern...
Dann wird dir folgendes Script sicherlich helfen!
function get_parent ( $dir ) { $dir = preg_replace ( '/(.*)\/(.*)\//', '\1/', $dir ); return ( $dir ); }
Um den Link eines h?her gelegene Verzeichnis zu erhalten. -
http://de.php.net/manual/de/ref.array.php
http://de.php.net/manual/de/function.usort.php
Die Vergleichsfunktion kannst du mit deinen PHP-Kenntnissen sicher selber schreiben, oder?
MfG
alopex -
Hey aloplex, wenn ich oben schon geschreiben habe das ich im PHP manual nachgesehen habe, dann werde ich die funktiuon ja wohl auch gesehen haben.
Au?erdem habe ich gesagt das ich nach ner fertigen fuktion suche... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage