sortieren Multi-Array

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

  • sortieren Multi-Array

    Hallöchen,
    ich steh gerade fürchterlich aufm Schlauch.

    Folgendes Array möchte ich nach end_quote (absteigend) sortieren.
    PHP-Code:
    Array (     
    [
    wasser_wanderer] => Array
             (
                 [
    sum_quote] => 4304.909
                 
    [sum_teilnahme] => 64
                 
    [durchschn_quote] => 67.264203125
                 
    [limit] => 35
                 
    [diff] => 0
                 
    [abzug] => 0
                 
    [end_quote] => 67.264203125
                 
    [letze_teilnahme] => datum
             
    )
          [
    ueberflieger] => Array
             (
                 [
    sum_quote] => 1408.948
                 
    [sum_teilnahme] => 28
                 
    [durchschn_quote] => 50.319571428571
                 
    [limit] => 35
                 
    [diff] => 7
                 
    [abzug] => 10.5
                 
    [end_quote] => 43.319571428571
                 
    [letze_teilnahme] => datum
             

    Habe arsort/ksort und rsort versucht. aber ich bekomme es nicht hin.
    Hat jemand bitte einen Tip für mich?

  • #2
    Aus meiner Wühlkiste:
    PHP-Code:
    $adresse[] = array ( 'vorname' => "hans"'nachname' => "schmidt"'datum' => 1993 );
    $adresse[] = array ( 'vorname' => "karl"'nachname' => "schmidt"'datum' => 1963 );
    $adresse[] = array ( 'vorname' => "maria"'nachname' => "schmidt"'datum' => 1964 );
    $adresse[] = array ( 'vorname' => "karla"'nachname' => "meier"'datum' => 1999 );


      function 
    cmp_by_spalte_numerisch($spalte$sortierrichtung SORT_ASC)
      {
             
    $richtung SORT_ASC === $sortierrichtung?1:-1
             return function (
    $a,$b) use ($spalte,$richtung)
                    {     
                          return (
    $a[$spalte] - $b[$spalte]) * $richtung;
                    };   
      }


      function 
    cmp_by_spalte_string($spalte,$sortierrichtung SORT_ASC)
      {
             
    $richtung SORT_ASC === $sortierrichtung?1:-1
             return function (
    $a,$b) use ($spalte,$richtung)
                    {
                          return 
    strcmp($a[$spalte],$b[$spalte]) * $richtung;
                    };   
      }






    usort($adresse,cmp_by_spalte_numerisch('datum',SORT_DESC));
    //usort($adresse,cmp_by_spalte_string('vorname')); 
    Zuletzt geändert von combie; 20.03.2012, 18:12.
    Wir werden alle sterben

    Kommentar


    • #3
      Hölle combie
      nun hab ich wieder was Neues für die nächsten 24 Stunden :-)

      Aber danke dir

      Kommentar


      • #4
        Zitat von Wasser_Wanderer Beitrag anzeigen
        Hölle combie
        nun hab ich wieder was Neues für die nächsten 24 Stunden :-)

        Aber danke dir
        Na, dann kau du mal fein...
        Wir werden alle sterben

        Kommentar


        • #5
          Solange hat es nun doch nicht gedauert

          Dank combie, der mir den richtigen Schubs gegeben hat, habe ich es hinbekommen.

          Nochmals Danke combie.

          Multi-Arrays kann man wohl nur per Benutzerspezifischen Sortierfunktionen, sortieren. Stichwort: usort /uasort und uksort

          ich hab es so (für mein Beispiel) gelöst:
          PHP-Code:
          function gefiltert_cmp($_a$_b)
          {
          if (
          $_a['end_quote'] < $_b['end_quote']) return 1# A ist < als B
              
          else
              {
          return -
          1;# Es bleibt nur, dass A > B sein muss
              
          }

          }
          // Quote absteigend sortieren nach end_quote
          uasort($sum_alle_quoten,'gefiltert_cmp'); 
          Vielleicht hilft es ja jemanden

          Kommentar


          • #6
            Es bleibt nur, dass A > B sein muss
            Hmm...
            Es könnte auch 2 gleiche geben.
            Wir werden alle sterben

            Kommentar

            Lädt...
            X