array nach einem bestimmten feld sortieren

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?

    Comment


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

      Comment


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

        Comment


        • #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.

          Comment


          • #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...

            Comment


            • #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.

              Comment


              • #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...
                Last edited by israelsson; 24-10-2005, 14:46.

                Comment

                Working...
                X