Ankündigung

Einklappen
Keine Ankündigung bisher.

Array durchsuchen und weiterverarbeiten???

Einklappen

Neue Werbung 2019

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

  • Array durchsuchen und weiterverarbeiten???

    Hallo,

    ist vielleicht eine blöde Frage, aber ich komme einfach nicht weiter. Ich versuche folgendes:

    Aus einer Datenbank werden mehrere Händler ausgelesen und in einem zweidimensionalen Array gespeichert. Nun will ich herausfinden ob ein Eintrag eine bestimmte Postleitzahl hat, und wenn ja, will ich diesen Eintrag an die erste Stelle schieben.

    Hierfür habe ich folgendes geschrieben:

    PHP-Code:
    if($r['distance'] == && ctype_digit($plz)){
        foreach (
    $array as $key => $value) {
            if(
    $value['plz'] == $plz) {
                
    array_unshift($array$array[$i]);
            }
        }

    Aber irgendwie funktioniert das Ganze nicht, weiß aber nicht so genau, warum nicht.


  • #2
    Hi.

    Was funktioniert nicht? Gibt es eine Fehlermeldung usw.?

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Debuggen mit echo und print_r, ausserdem fehlt da die Hälfte des Scripts um irgendwas nachvollziehen zu könne, von den Daten die du da reinballerst ganz zu schweigen.
      You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

      Kommentar


      • #4
        Nein, eine Fehlermeldung kommt nicht, allerdings habe ich es in ein opensource Skript eingebaut.

        Das Array ist aufgebaut nach dem Muster:

        Händler1: id
        name
        vorname
        plz....
        Händler2: id
        name
        vorname
        plz.....

        Die Daten sind alle da. Ich möchte jetzt lediglich den Bereich plz durchsuchen, in wie weit dieser String vorhanden ist.

        Debuggen mit echo und print_r hat mich auch nicht wirklich weitergebracht. So wie es aussieht bricht es bei der zweiten if-Bedingung ab, aber warum ist mir nicht ganz klar. Ob die Bedingung oder das Umsortieren im Array das Problem ist.

        Kommentar


        • #5
          Also ich würde direkt beim Datenfetch aus der DB nach der PLZ direkt sortieren ala ORDER BY PLZ = '12345' dann wirds automatisch nach oben gestellt...

          Kommentar


          • #6
            Da läuft schon ein Order nach einem weiteren Wert, kann ich denn zwei ORDER BY machen?

            Kommentar


            • #7
              Ja "ORDER BY spalte1 ASC, spalte2 DESC"

              Kommentar


              • #8
                Noch einmal zu der if-Schleife, hier funktioniert der Zugriff auf das Element plz im Array nicht.

                Aber wenn ich im "zweiten" Array folgende Einträge habe:

                PHP-Code:
                [strasse] => Müllerstr70 b [plz] => 12345[ort] => Berlin 
                greife ich doch normalersweise darauf zu, in dem ich

                PHP-Code:
                foreach ($array as $key => $value) { 
                        if(
                $value['plz'] == $plz) { 
                            
                array_unshift($array$array[$key]); 
                        } 

                mache, oder fehlt mir vielleicht einfach nur noch eine Schleife?

                Kommentar


                • #9
                  http://www.php.de/beitragsarchiv/468...-schleife.html
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Das war ein Schreibfehler. Oben war die If-Bedingung gemeint, mit Schleife meinte ich ein weiteres foreach.

                    Wie greife ich denn nun auf ein solches Element im Array zu? Nach allem was ich bisher gelesen habe, ist mein Ansatz doch gar nicht so verkehrt.

                    Kommentar


                    • #11
                      PHP-Code:
                      array_unshift($array$array[$key]); 
                      array_unshift funktioniert so nicht. Es schiebt nicht, sondern fügt ein. [MAN]array_unshift[/MAN]
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        Ich wäre ja froh, wenn er bis zum array_unshift käme. Aber es hängt ja schon an dem Vergleich der PLZ.

                        Das vorhandene Array sieht folgendermaßen aus:

                        Code:
                        Array 
                        ( [0] => Dealer Object 
                        	( [id] => 109 [DbValues] => Array 
                        		( [id] => 109 [firma] => Max Mustermann [strasse] => Musterstr. 123 [plz] => 12345 [ort] => Musterstadt.....
                        Wie kann ich denn nun die plz abfragen und somit dann in der IF-Bedingung vergleichen?

                        Kommentar


                        • #13
                          Wieso baust DU das auch so kompliziert. Btw. ist das Array 3-dimensional.
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            Ich habe es nicht gebaut, nutze ein OpenSource Skript und wollte das etwas variieren.

                            Kommentar

                            Lädt...
                            X