PHP-Array Überprüfung

Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!

Zu der Infoseite von „Die Mo-Mo-Manie“
  • Hallo Leute
    Ich würde mit meiner Funktion gerne überprüfen, ob bei einem eingegeben String, mindestens 2 Werte gegeben sind und Einer davon eine Zahl ist.
    Sieht so aus:


    Momentan bekomme ich true aber nur dann raus, wenn die Zahl als letztes Wert im String steht. Die Überprüfung mit mehr als einem Wert funzt.
    Wo ist da der Fehler?

  • Du hast nur gefragt "wo" der Fehler liegt, nicht das du eine vollständige Lösung haben willst ;) Probiere es wie folgt:



    Deine For-Bedingung war das eigentliche Übel, neben den anderen Dingen. Das "=" ist an der Stelle nicht korrekt gewesen und konnte daher immer nur am $lengthstreet-1 jemals verwemdet werden.

  • Wieso macht ihr es euch so kompliziert? Statt Arrays kann man auch einfach einen regulären Ausdruck benutzen.
    Die Funktion erkennt übrigens auch Straßen wie "Hauptstraße 2a". Was noch fehlt ist die Verarbeitung von Umlauten, wie ä, ö und ü. Das mit str_replace() ist bloß ein kleines Workaround.


  • Naja, wozu hier nen großen Wurf machen wenn jede hier gebrachte Lösung nur unzureichend sein kann? Hinter einer korrekten Adressvalidierung steckt ein wenig mehr und ist nicht ohne. Adressen ohne Hausnummer, Adressen bei der der Straßenname eine Nummer ist... allein bei uns in D gibt es zahlreiche Schreibweisen. Direkt nebenan, in Frankreich geht der Spaß weiter. Und wenn es dann weg von "westlichen" Adressangaben. Beliebt in Frankreich, bei uns aber auch nicht unüblich, Straßen welche ein Datum enthalten etc.


    Die "Straße des 17. Juni" wird in deinem Beispiel zB auch abgewiesen.

  • Naja aber "Straße des 17. Juni 22" aber nicht. Mir gehts ja nur darum einen Straßennamen und eine Hausnummer zu haben und das gibts ja überall.
    Edit: Hab den vorvor Poster übersehen. Ich kenn mich mit REgEx noch nicht aus. Dementsprechend kann ich mit dem preg_match noch nix anfangen. Werd mir das aber noch reinziehen, danke.

  • Aber genau da liegt schon der Irrtum in der Grundüberlegung vor. Straßen mit Hausnummern gibt es eben *nicht* überall. Anbei mal ein paar Adressbeispiele allein aus Deutschland welche keine Hausnummern haben und dennoch korrekte Adressen beschreiben und von der Post anstandslos akzeptiert werden (Und die Briefe kommen auch an)


    An der A 1
    M1 oder M 1oder O2 1 oder O 2 1 (Ja, da hat Mannheim sich was tolles einfallen lassen mit den Planquadraten ;) )
    1853er Strasse
    1. Querstrasse
    Strasse des 13. Januar



    Allgemein gilt: Je kleiner und ländlicher ein Ort ist umso eher kann es passieren das aus historischen Gründen in einer Straße nie Hausnummern vergeben wurden. Selten aber völlig normal.


    Um das ganze noch fieser zu gestalten, anbei Adressen mit Hausnummern:
    Klgv 150 pz 1168
    Straße des 20. Juli 8-10 a Block 4 Eingang 3
    An der B75 12
    Straße des 17. Juni 31 (Na, welche Adresse in Berlin ist das?)


    Alles Beispiele bei denen, wenn die Straße von der Hausnummer getrennt werden soll, mehr Gehirnschmalz zum Einsatz kommen muss wie eine reine Stringtrennung und ein Vergleich.

  • Ok da hast du recht.
    Aber nachdem ich eigentlich nicht so ein großes Augenmerk bei meiner Seite auf eine Straßen Validierung lege, sondern eher der Rest funzen soll, beschäfftige ich mich mal mit dem Rest.
    Sollte dir etwas besseres einfallen, bin ich gern offen dafür, ansonsten reicht mir diese Lösung amal.