String nach mehreren Zeichen durchsuchen?

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

  • String nach mehreren Zeichen durchsuchen?

    Hallo,

    Wie kann ich diesen String durchsuchen ob darin, A2 oder B13 vorkommt?

    PHP-Code:
    $str="A1, A2, A3, A4, B2, B13, B28";

    $find=array("a2","b13");
    if(
    eregi($str,$find))
     {
      
    # mindestens eins wurde gefunden
     

    Ich hab mit
    ereg, eregi, strstr, stristr, strpos und stripos rumprobiert aber ich bekomm das mal wieder nicht gebacken! :-(
    ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

  • #2
    PHP-Code:
    $str "A1, A2, A3, A4, B2, B13, B28";
    $arr explode(", "$str);

    if (
    in_array("A2"$arr)) {
        echo 
    "A2 kommt vor\n";
    }

    if (
    in_array("B13"$arr)) {
        echo 
    "B13 kommt vor\n";

    Kommentar


    • #3
      Zitat von RamonaS Beitrag anzeigen
      Hallo,

      Wie kann ich diesen String durchsuchen ob darin, A2 oder B13 vorkommt?
      (
      PHP-Code:
      if(str_ireplace($find,'',$str)!=$str) echo 'ein gefunden'
      Zuletzt geändert von Slava; 15.07.2009, 13:35.
      Slava
      bituniverse.com

      Kommentar


      • #4
        Zitat von Slava Beitrag anzeigen
        PHP-Code:
        if(str_ireplace($find,'',$str)!=$str) echo 'ein gefunden'
        Wozu willst du da ersetzen? Und was ist, wenn er nach A2 sucht, im String A21 und A22 aber kein A2 vorkommt?

        Kommentar


        • #5
          A2 vorkommt in A21 und in A22 wenn sie was anderes sucht, dann muss sie das auch anderes beschreiben.
          Slava
          bituniverse.com

          Kommentar


          • #6
            Zitat von Slava Beitrag anzeigen
            A2 vorkommt in A21 und in A22 wenn sie was anderes sucht, dann muss sie das auch anderes beschreiben.
            Mitdenken ist nicht verboten. Und selbst wenn sie das so haben wollte, wäre strpos() die deutlich bessere Wahl als Replace-Funktionen.

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Mitdenken ist nicht verboten. Und selbst wenn sie das so haben wollte, wäre strpos() die deutlich bessere Wahl als Replace-Funktionen.
              strpos ist besser, aber kann mit arrays nichts anfangen, was natürlich uns zu einer schleife gezwungen hätte. In meisten fällen ist aber die performance von festen Funktionen viel besser als von eigenen .
              Ich gebe zu, dass ich keinen Profiler-Test gestartet habe um @RamonaS zu helfen.
              Slava
              bituniverse.com

              Kommentar


              • #8
                Zitat von h3ll Beitrag anzeigen
                PHP-Code:
                $str "A1, A2, A3, A4, B2, B13, B28";
                $arr explode(", "$str);

                if (
                in_array("A2"$arr)) {
                    echo 
                "A2 kommt vor\n";
                }

                if (
                in_array("B13"$arr)) {
                    echo 
                "B13 kommt vor\n";

                Hallo,
                dein beispiel würde ja funktionieren, aber ich frage da mehrere sachen ab, deshalb sollte das in einem rutsch gemacht werden.
                Für jede abfrage eine eigene IF ist nicht gut...für mich :-)

                Ich dachte man kann das in ein array reinlegen und dann den string durchsuchen nach dem inhalt des arrays.
                ACHTUNG: RamonaS zeigte ein beschämendes Verhalten in der Vergangenheit

                Kommentar


                • #9
                  Zitat von RamonaS Beitrag anzeigen
                  Hallo,
                  dein beispiel würde ja funktionieren, aber ich frage da mehrere sachen ab, deshalb sollte das in einem rutsch gemacht werden.
                  Für jede abfrage eine eigene IF ist nicht gut...für mich :-)

                  Ich dachte man kann das in ein array reinlegen und dann den string durchsuchen nach dem inhalt des arrays.
                  PHP-Code:
                  $suche = array("A2""B13");

                  if (
                  array_intersect($suche$arr)) {
                      echo 
                  "kommt vor";

                  Kommentar


                  • #10
                    Ich dachte
                    Und ich denke: Du suchst die Differenz zwischen von 2 Arrays..
                    (oder ist es die Schnittmenge)
                    Das Handbuch gibt gerne Auskunft
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      Im übrigen .. Needle bei in_array ist mixed. Nimmt also auch ein Array.
                      gruss Chris

                      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                      Kommentar


                      • #12
                        Zitat von hhcm Beitrag anzeigen
                        Im übrigen .. Needle bei in_array ist mixed. Nimmt also auch ein Array.
                        Bringt in dem Fall aber nix, weil nach Strings gesucht wird und nicht nach Arrays.

                        Kommentar

                        Lädt...
                        X