array nach einem bestimmten feld sortieren

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

  • array nach einem bestimmten feld sortieren

    Hallo,

    ich habe ein array indem postleitzahlen und entfernungen enthalten sind, nun möchte ich dieses array nach den entfernungswerten sortieren.

    Hab mir zwar die sort funktionen auf php.net durchgelesen aber irgendwie nichts passendes gefunden..

    Mein array sieht so aus:

    PHP-Code:
    $bedingung plzGetAllPLZNear($_POST['plz'], $distance); 
    Die entfernungen werden über die Funktion plzGetAllPLZNear per Geo Daten errechnet..

    Für die Ausgabe sollen die Orte jedoch nach entfernung sortiert sein..

    Ich komm nicht weiter..

  • #2
    Die entfernungen werden über die Funktion plzGetAllPLZNear per Geo Daten errechnet..
    Wie gut das jede PHP-Version die funktion besitzt.

    hast du dir im manual alle array funktionen (nicht nur sort) angesehen?

    Kommentar


    • #3
      kann leider nichts passendes finden.. auf welche funktion spielst du an ?

      Kommentar


      • #4
        Wie sieht $bedingung denn aus?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          $bedingung ist ein 1 dimensionales array indem jeweils 2 werte gespeichert sind einmal die plz und einmal eine errechnete entfernung.

          nun möchte ich das array nach dem wert der entfernung sortieren lassen.

          Kommentar


          • #6
            Original geschrieben von yakuzza
            $bedingung ist ein 1 dimensionales array indem jeweils 2 werte gespeichert sind einmal die plz und einmal eine errechnete entfernung.
            Also ist es zweidimensional...

            nun möchte ich das array nach dem wert der entfernung sortieren lassen.
            array_multisort oder usort sind hilfreiche Funktionen.

            Suche auch gerne hier mal nach multisort
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Machs doch einfach mit array_mulitsort(). Dazu musst du nur die aus deinen PLZ's und entfernungen einen einen mehrdimensionalen array basteln ( also $array[0] = PLZ und $array[0][1] = Entfernung usw.) Dann brauchst du nur noch

              PHP-Code:
              array_multisort($array[1], SORT_ASCSORT_NUMERIC,
              $array[0], SORT_STRINGSORT_DESC); 
              Falls du irgendeine Frage zu PHP, HTML, CSS oder Javascript hast sende mir einfach eine E-Mail an sternkinder@gmail.com oder setze dich mit mir per ICQ (255-471-187) in Verbindung.

              Kommentar


              • #8
                ist vielleicht ne unschöne Lösung aber du kannst das auch einfach so machen

                bau das array so auf, das du entfernung und plz mit nem trennzeichen trennst, in diesem Fall ist das Trennzeichen | :
                PHP-Code:
                $array[] = "|$entfernung|$plz|";

                $array = array("|$entfernung|$plz|","|$entfernung|$plz|","|$entfernung|$plz|","|$entfernung|$plz|"...); 
                dann kannst du ganz normal
                PHP-Code:
                sort($array); machen... 
                dann nachher die einzelnen elemente exploden...
                PHP-Code:
                $element explode("|"$array[$i]);

                $element[1// ist dann die entfernung
                $element[2// ist dann die dazugehörende plz 
                wenn du das ganze in einer schleife ausgibst funzt das recht gut....

                wie gesagt, etwas aufwendiger als mit zweidimensionalen arrays, aber falls du damit nicht klar kommst ist das ne alternative die funzt...
                Zuletzt geändert von israelsson; 24.10.2005, 15:46.

                Kommentar

                Lädt...
                X