Sortieren (n-Array)

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

  • #16
    Original geschrieben von TobiaZ
    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. 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.
    Das ich das sortieren kann, ist klar.

    Aber ich möchte doch aus folgendem Ausgang:

    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"

    folgendes Ergebnis zaubern:

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

    Viele Grüße
    Henning

    Kommentar


    • #17
      uasort() + callback Funktion sollte helfen.
      Aber einfacher ist es sicherlich, wenn du bereits die DB sortieren lässt.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #18
        NEIN!

        Du möchtest die Sortierung schon VORHER durchführen!

        Kommentar


        • #19
          Und wie soll ich vorher sortieren, wenn meine Funktion so aussieht?

          PHP-Code:
              function getStructure($customerid$folderid) {
                  global 
          $db$common$customer;
                  
                  
          $customerid $customer->returnIntegerID($customerid);
                  
                  
          $res $db->query("SELECT `documentFolderID`, `documentFolderName`
                  FROM `documentFolder`
                  WHERE `documentFolderParent` = '"
          .$folderid."'
                  AND `documentFolderCustomer` = '"
          .$customerid."'");
                  
                  
          $i 0;
                  while(
          $row mysql_fetch_assoc($res)) {
                      
                      
          $tmp[] = array("id" => $row["documentFolderID"], "type" => "folder""name" => $row["documentFolderName"]);
                      
                  }
                  
                  
          $res $db->query("SELECT `documentFileID`, `documentFileName`
                  FROM `documentFile`
                  WHERE `documentFileFolder` = '"
          .$folderid."'
                  AND `documentFileCustomer` = '"
          .$customerid."'");
                  
                  while(
          $row mysql_fetch_assoc($res)) {
                      
                      
          $tmp[] = array("id" => $row["documentFileID"], "type" => "file""name" => $row["documentFileName"]);
                      
                  }
                  
                  
          $sortTmp = array();
                  
                  foreach(
          $tmp as $key => $value) {
                      
          $sortTmp[$key] = $value["name"];
                  }
                  
                  
          sort($sortTmpSORT_STRING);
                  
                  
                  
          array_multisort($sortTmpSORT_ASCSORT_STRING$tmp);
                  
                  return 
          $tmp;
                  
              } 
          Viele Grüße
          Henning

          Kommentar


          • #20
            Join und lesen !!
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #21
              Original geschrieben von TobiaZ
              Du bekommst die Daten doch [...] aus der DB raus. Da packste noch ein ORDER BY rein und schon hast du die daten sortiert. Ist doch schön

              Kommentar


              • #22
                Original geschrieben von jahlives
                Join und lesen !!
                Aber er kann doch keinen JOIN machen...

                Kommentar


                • #23
                  Und wie soll ich einen JOIN machen, wenn die Tabellen an sich keine Beziehung zueinander haben???

                  Kommentar


                  • #24
                    wenn eine zuordnung über folder nicht möglich ist, ist dein ganzes vorhaben schon unsinnig.

                    Kommentar


                    • #25
                      Ist es nicht.

                      Es geht darum, den Inhalt eines Verzeichnisses herauszufinden und den dann entsprechend zu sortieren.

                      Die beiden Tabellen haben lediglich folgenden Zusammenhang:

                      Wir sind in FolderID 1
                      Dann muss documentFolderParent = 1 sein und documentFileFolder = 1.

                      Kommentar


                      • #26
                        na gut, bevor wir sonst noch was optimieren, nimm dein unsortiertes array aus dem eingangsposting (nicht das welches du hinzugefügt hast!) und asort und gut ist.

                        Kommentar


                        • #27
                          Mit asort() tut sich auch nichts :-(

                          Kommentar


                          • #28
                            dann ist dein problem wohl unlösbar.
                            es wurden zwei lösungswege genannt, ich würde zur sortierung mittels db tendieren. es liegt an dir, etwas daraus zu machen.

                            Kommentar


                            • #29
                              Original geschrieben von penizillin
                              dann ist dein problem wohl unlösbar.
                              es wurden zwei lösungswege genannt, ich würde zur sortierung mittels db tendieren. es liegt an dir, etwas daraus zu machen.
                              Hi penizillin,

                              mhm, aber wie soll ich das in einem Query machen, so dass ich aber auch gleich erkenne, woher die ID jeweils kommt. Ich möchte eure Ratschläge schon annehmen, keine Frage - aber dann gebt mir einen Anstoß, wie ich eine Sortierung seitens der DB vornehmen lassen kann.

                              Kommentar


                              • #30
                                Nimm dein Ausgangsarray und mache mal folgendes
                                PHP-Code:
                                function cmp($a$b) {
                                  return 
                                strcmp($a["name"], $b["name"]);
                                }
                                //damit werden die Keys geändert
                                usort($arrayOriginal"cmp");
                                //so bleiben die Keys erhalten
                                uasort($arrayOriginal"cmp"); 
                                ist's so besser ?

                                Gruss

                                tobi
                                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                                Kommentar

                                Lädt...
                                X