Chris: Innerhalb Arrays nach Zeichenkette suchen

Hi Ihr,

ich muss innerhalb eines Arrays nach einer bestimmten Zeichenkette suchen alle Suchergebnisse sollen angezeigt werden.

Bsp.:
Ich habe ein Array was so aussieht:

$array = array("katze","ashunddf","pferdsdlcknsdjk","hundekjhjkscbsdjkcnsd","wal");

hier soll nun jetzt nach der zeichenfolge "hund" gesucht werden.
Es sollten also letztendlich zwei Übereinstimmungen gefunden werden:
Array(
    [2] => ashunddf
    [4] => hundekjhjkscbsdjkcnsd
)

ich hoffe ihr könnt mir helfen

  1. Moin Moin !

    PHP hat mehrere an GREP angelehnte Funktionen: http://www.php.net/manual-lookup.php?pattern=grep&lang=de

    Du kannst auch -- deutlich langsamer -- selbst mit einer for-Schleife über das Array gehen und für jedes Element überprüfen, ob Du es haben willst.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. hi alexander,

      sorry, aber kannst du mir da evtl. helfen ? ich krieg dass nicht hin, leider...

      was muss ich denn genau machen wenn ich ein array so durchsuchen will ?

      1. Moin,

        sorry, aber kannst du mir da evtl. helfen ? ich krieg dass nicht hin, leider...

        was muss ich denn genau machen wenn ich ein array so durchsuchen will ?

        Welchen Teil von http://www.php.net/manual/de/function.preg-grep.php hast du nicht verstanden?

        Sorry, aber die Doku vorlesen wird dir hier wohl keiner. (Ausser natürlich gegen entsprechendes Honorar.)

        --
        Henryk Plötz
        Grüße von der Ostsee
        1. Ich krieg es einfach nicht hin damit ne suchabfrage für'n array zu erstellen.

          ich hab mir auch ma was über eine schleife gebastelt, aber das funzt net, vielleicht weiß du ja wo da nen fehler drin steckt

          $array = array("katze","hund","pferd sdlcknsdjk","HUNSDBHB djkscbsdjkcnsd","wal");
          $suchbegriff = "hund";
          for($s=0;$s<count($array);$s++) {
          $blabla=strstr($array[$s][0], $suchbegriff);
          if(length($blabla)>0) {
          echo "<a href="".$array[$s][0]."">".$array[$s][1]."</a><br>";
          }
          }

          THX Chris

          1. hatte so'n problem auch.
            löse es einfach in dem du den if-schleife durch den stristr bzw strstr befehl ersetzt.
            if (stristr($wert,"hund"))
            dann geht es ;)

            ciao Eike

            1. hey klasse... super ja jetzt geht es

              DANKE Eike

              cya Chris

          2. Moin,

            $blabla=strstr($array[$s][0], $suchbegriff);

            Das ist wohl des Pudels Kern, denn in $array[$s][0] steckt bestimmt kein Hund drin. Lass es dir einfach mal spaßeshalber ausgeben!
            Oh, und mein PHP kennt keine Funktion length().

            Hint: .leivuz tsi ]0[ saD

            --
            Henryk Plötz
            Grüße von der Ostsee