Sortieren (n-Array)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortieren (n-Array)

    Hallo Community,

    ich habe ein Array, das multidimensional ist, das sortiert werden soll.
    Die Struktur:

    PHP-Code:
    array(5) {
    [
    0]=>  string(8"Verträge" 
    [1]=>  string(9"Dokumente" 
    [2]=>  string(24"Vertragsbestaetigung.pdf" 
    [3]=>  string(13"nokia_n95.jpg" 
    [4]=>  string(19"nokia_n95_bild2.jpg"

    Hinweis: Das obige Array ist das Array, was in $sortTmp ist. Das originale Array sieht wie folgt aus:

    PHP-Code:
    array(5) { 
    [
    0]=>  
      array(
    3) { ["id"]=>  string(1"1" ["type"]=>  string(6"folder" ["name"]=>  string(8"Verträge" 
    [
    1]=>  
      array(
    3) { ["id"]=>  string(1"3" ["type"]=>  string(6"folder" ["name"]=>  string(9"Dokumente" 
    [
    2]=>  
      array(
    3) { ["id"]=>  string(1"1" ["type"]=>  string(4"file" ["name"]=>  string(24"Vertragsbestaetigung.pdf" 
    [
    3]=>  
      array(
    3) { ["id"]=>  string(1"4" ["type"]=>  string(4"file" ["name"]=>  string(13"nokia_n95.jpg" 
    [
    4]=>  
      array(
    3) { ["id"]=>  string(1"5" ["type"]=>  string(4"file" ["name"]=>  string(19"nokia_n95_bild2.jpg" }

    Das Problem ist, dass er die Dateinamen nicht dazwischen sortiert, sondern erst die Ordnernamen und da drunter erst die Dateinamen. Ich möchte jedoch das komplett alphabetisch sortiert haben.

    Ich habe mich mit dem array_multisort() herumgeschlagen, kriege aber keine Änderung des Ergebnis.

    Mein Test:

    PHP-Code:

    array_multisort
    ($sortTmpSORT_ASCSORT_STRING$dataArray); 
    Kann mir jemand helfen?
    Grüße
    Someday
    Zuletzt geändert von Someday; 13.08.2007, 13:28.

  • #2
    wo kommen die daten her?

    Kommentar


    • #3
      Hi Penizillin,

      Aus einer Datenbank, 2 Tabellen. Jeweils wird das gleiche Array-Format genutzt, siehe 1. Post (habe ihn aktualisiert)!

      Wird von einer Funktion "zusammengesucht".

      Viele Grüße
      Henning

      Kommentar


      • #4
        Was ist bitte an dem Array multidimensional?

        asort()

        Kommentar


        • #5
          Original geschrieben von TobiaZ
          Was ist bitte an dem Array multidimensional?

          asort()
          Habe das Ganze im ersten Post erweitert, bitte schau nochmal hin.
          Ist definitiv multidimensional.

          Viele Grüße
          Someday

          Kommentar


          • #6
            Du hast ein "Array-Format" in der Datenbank gespeichert? Warum das?

            Zeig mal die Struktur!

            Kommentar


            • #7
              PHP-Code:
              CREATE TABLE documentFile (
                
              documentFileID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
                
              documentFileFolder INTEGER UNSIGNED NOT NULL,
                
              documentFilePath TEXT NULL,
                
              documentFileCustomer INTEGER UNSIGNED NULL,
                
              documentFileComment TEXT NULL,
                
              documentFileAdded INTEGER UNSIGNED NULL,
                
              documentFileName TEXT NULL,
                
              documentFileSize DOUBLE NULL,
                
              PRIMARY KEY(documentFileID),
                
              INDEX documentFile_FKIndex1(documentFileFolder)
              );

              CREATE TABLE documentFolder (
                
              documentFolderID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
                
              documentFolderCustomer INTEGER UNSIGNED NULL,
                
              documentFolderParent INTEGER UNSIGNED NULL,
                
              documentFolderSystemTag TEXT NULL,
                
              documentFolderName TEXT NULL,
                
              PRIMARY KEY(documentFolderID),
                
              INDEX documentFolder_FKIndex1(documentFolderCustomer)
              ); 
              Ich suche alle Ordner und Dateien zusammen, die im gleichen "Ordner" (documentFolderParent bzw documentFileFolder) sind .
              ich habe das mit 2 Querys gemacht, die die Daten zusammen in ein Array schreiben.

              Viele Grüße
              Someday

              Kommentar


              • #8
                warum sortierst du nicht in der datenbank, noch bevor die daten in dein php array kommen?

                Kommentar


                • #9
                  Lass die DB sortieren!

                  Kommentar


                  • #10
                    Weil doch Ordner und Dateien in 2 Tabellen liegen?! Die sollen doch ineinander sortiert werden ....

                    Kommentar


                    • #11
                      und?

                      Kommentar


                      • #12
                        Ich weiß nicht wie da die Query aussehen muss...

                        Viele Grüße
                        Henning

                        Kommentar


                        • #13
                          kann man dir helfen?

                          Kommentar


                          • #14
                            Naja, wenigstens einen Anstoß geben, wie ich das mache, dass ich aus der oben geposteten Datenbankstruktur das ganz oben genannte Array bekomme.

                            Ich kann doch keinen JOIN machen ... Daher wüsste ich jetzt nicht, wie ich das als Query machen soll :S

                            Kommentar


                            • #15
                              Du bekommst die Daten doch schon aus der DB raus. Da packste noch ein ORDER BY rein und schon hast du die daten sortiert. Ist doch schön!

                              Mach das erstmal.
                              Ich kann doch keinen JOIN machen ... Daher wüsste ich jetzt nicht, wie ich das als Query machen soll :S
                              Hauptsache, wenn man keinen Plan hat, bringt man einfach mal das Wort JOIN ins spiel, damit es wenigstens so aussieht, als hätte man alles versucht.

                              Kommentar

                              Lädt...
                              X