kostenloser Webspace werbefrei: lima-city


Multidimensionamles array sortieren

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    theuntouchables

    theuntouchables hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    theuntouchables

    theuntouchables hat kostenlosen Webspace.

    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...

  5. 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. ^^
  6. php.net-manual

    array-multisort($array, SORT_ASC)

    statt SORT_ASC gibt es auch noch
    SORT_STRING, SORT_NUMERIC und SORT_DESC

    MfG Asmodeus
  7. Autor dieses Themas

    theuntouchables

    theuntouchables hat kostenlosen Webspace.

    @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...

  8. @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.'/';
          }
        }
      }
    }
  9. 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
  10. Autor dieses Themas

    theuntouchables

    theuntouchables hat kostenlosen Webspace.

    @lucas9991: Der Filemanager is schon seit langem fertig, ich will ihn nurnoch etwas versch?nern...

  11. @lucas9991: Der Filemanager is schon seit langem fertig, ich will ihn nurnoch etwas versch?nern...

    Dann wird dir folgendes Script sicherlich helfen! :wink:
    function get_parent ( $dir ) {
      $dir = preg_replace ( '/(.*)\/(.*)\//', '\1/', $dir );
      return ( $dir );
    }

    Um den Link eines h?her gelegene Verzeichnis zu erhalten.
  12. 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
  13. Autor dieses Themas

    theuntouchables

    theuntouchables hat kostenlosen Webspace.

    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...
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!