Ankündigung

Einklappen
Keine Ankündigung bisher.

Array Elemente durchsuchen mit Joker/Platzhalter

Einklappen

Neue Werbung 2019

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

  • Array Elemente durchsuchen mit Joker/Platzhalter

    Also ich habe ein Array:

    PHP-Code:
    $array = array('Buch''Baum''Keks'
    Dieses Array varriert allerdings. Es entsteht aus vielen Begriffen, und besteht bei diesem Beispiel zB nur aus den Wörtern die 4 Buchstaben besitzen.

    Jetzt möchte ich ein Suchfeld erstellen. In das gibt man zB "B**m" ein. Nun soll das Array Element 'Baum' gefunden werden.

    Mein Problem dabei ist jetzt, wie ich das mit den "Jokerzeichen" (*) mache.
    Weil das funktioniert natürlich so nicht^^ Ich hoffe ich habe mich deutlich ausgedrückt ^^

    Schon mal Vielen Dank im Voraus


  • #2
    Hi,

    Hier ist eine einfache function mit der du ein array mittels regular expressions durchsuchen kannst.

    PHP-Code:
    /**
      * Searches for a regex match in every value of a one-dimensional array.
      *
      * @param string $pattern POSIX-extended regular expression to match.
      * @param array $haystack Array to search in.
      * @return mixed Index of the first match, or FALSE if no match is found.
      */ 
    function array_ereg($pattern$haystack) {

       for(
    $i 0$i count($haystack); $i++) {
           if (
    preg_match($pattern$haystack[$i])) {
               return 
    $i;
           }
       }
       return 
    false;

    Diese function gibt dir den index der ersten Übereinstimmung zurück, wenn nichts gefunden wurde false.

    Kommentar


    • #3
      Warum das ganze nicht mit foreach() dann gehts auch mit nicht-numerischen Arrays ?

      Edit: Ich meine das foreach() sollte man in der Funktion (der Post über mir) benutzen.
      Signatur:
      PHP-Code:
      $s '0048656c6c6f20576f726c64';
      while(
      $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

      Kommentar


      • #4
        Danke für deine Antwort

        $haystack wäre bei mir als das Array.
        Und $pattern müsste ich ja mit regulären Ausdrücken füllen. Allerdings weiß ich jetzt nicht wie. Weil das kommt ja darauf an je nachdem was man eingibt? Oder liege ich da jetzt irgendwie falsch?

        Kommentar


        • #5
          Und an ByStones:

          Habe dein Beitrag nicht mehr gelesen sry^^
          Also bei foreach() wäre es ja wieder das gleiche Problem, ich weiß ja nicht wie ich die Joker oder Lücken ausdrücken soll...

          Kommentar


          • #6
            Du könntest einfach die Platzhalter durch einen . ersetzen. Dieser steht im regulären Ausdruck für ein beliebiges Zeichen.
            http://hallophp.de

            Kommentar


            • #7
              Hey danke
              Genau das ist was ich meinte. Vielen Dank für eure Hilfe! Hab es jetzt so hin bekommen wie ich wollte.

              Kommentar


              • #8
                array_ereg
                Für sowas gibt es [MAN]preg_grep[/MAN]. Und der * ist eigentlich immer ein Joker für 1 oder mehrere Zeichen. Das solltest Du beibehalten.
                --

                „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

                Lädt...
                X