ARRAY Sortieren

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

  • ARRAY Sortieren

    Hi,

    habe das Forum schon durchsucht, werde aber aus den gefundenen Lösungsansetzen nicht schlau...

    Das Array($sx) enthällt 500 Datensätze aus verschiedenen Abfragen und Eingaben. Ich will keine SQL Abfrage (ORDER BY) ausführen.
    Es muss das Array sortiert werden

    Es enthällt die Spallten $sx [dat], $sx[name], $sx[id].

    Wie kann ich es jetzt z.B. nach $sx[dat] sortieren?

    Geht sowas?

    THX im voraus

    Josh
    Zuletzt geändert von Harlekin; 22.04.2005, 01:38.

  • #2
    Vtl. hilft das?
    http://www.php.net/manual/de/function.uasort.php
    LG!

    Kommentar


    • #3
      Folgende Funktion ist aus den User Contributed Notes der PHP Doku abgeleitet und sollte das machen was du brauchst:
      PHP-Code:
      /**
      * Document::array_sortByIndex
      *
      * Sortiert ein mehrdimensionales Array nach einer bestimmten Spalte
      * (der zweiten Ebene).
      *
      * Beispiel: sortieren eines Arrays nach der dritten Spalte (Nr.2), absteigend
      *    $arrSorted = array_sortByIndex($arrUnsorted,2,SORT_DESC);
      *
      * @param array $array - das zu sortierende Array
      * @param mixed $index - Name oder Nummer der Spalte nach der sortiert werden soll
      * @param integer $order - SORT_ASC|SORT_DESC
      * @param boolean $natsort - wenn TRUE, dann natürlichsprachliche Sortierung
      * @param boolean $case_sensitive - wenn TRUE, dann Groß-/Kleinschreibung beachten
      * @return array sortiertes Array
      */
      function array_sortByIndex($array$index$order SORT_ASC$natsort FALSE$case_sensitive FALSE) {
          if (
      is_array($array) AND (count($array) > 0)) {
              foreach (
      array_keys($array) AS $key) {
                  
      $temp[$key]=$array[$key][$index];
              }
              if (!
      $natsort) {
                  if (
      $order == SORT_ASC) {
                      
      asort($temp);
                  } else {
                      
      arsort($temp);
                  }
              } else {
                  if (
      $case_sensitive) {
                      
      natsort($temp);
                  } else {
                      
      natcasesort($temp);
                  }
                  if (
      $order != SORT_ASC) {
                      
      $temp=array_reverse($temp,TRUE);
                  }
              }
              foreach (
      array_keys($temp) AS $key) {
                  if (
      is_numeric($key)) {
                      
      $sorted[]=$array[$key];
                  } else {
                      
      $sorted[$key] = $array[$key];
                  }
              }
              return 
      $sorted;
          }
          return 
      $array;
      }

      // Beispiel für ein Array $sx mit den Spalten $sx['dat'], $sx['name'], $sx['id'].

      $arrSXsorted array_sortByIndex($sx,'dat'); 
      Ich denke, also bin ich.
      Manche sind trotzdem!

      Kommentar


      • #4
        wozu das rad neu erfinden? array_multisort()

        Kommentar


        • #5
          Original geschrieben von penizillin
          wozu das rad neu erfinden? array_multisort()
          Weil´s Spass macht? Neee, irgendwann hab ich damit mal rumgespielt und totale Probleme gehabt. Ich weiss leider nicht mehr warum. Deshalb benutzte ich von da an diese Funktion. Vielleicht war´s n Bug. Ich werd´s wohl nochmal testen müssen.
          Ich denke, also bin ich.
          Manche sind trotzdem!

          Kommentar


          • #6
            Danke

            Danke,

            hat gefunzt....

            LG Josh

            Kommentar

            Lädt...
            X