String nach mehreren Zeichen durchsuchen?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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";

    Comment


    • #3
      Originally posted by RamonaS View Post
      Hallo,

      Wie kann ich diesen String durchsuchen ob darin, A2 oder B13 vorkommt?
      (
      PHP Code:
      if(str_ireplace($find,'',$str)!=$str) echo 'ein gefunden'
      Last edited by Slava; 15-07-2009, 12:35.
      Slava
      bituniverse.com

      Comment


      • #4
        Originally posted by Slava View Post
        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?

        Comment


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

          Comment


          • #6
            Originally posted by Slava View Post
            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.

            Comment


            • #7
              Originally posted by h3ll View Post
              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

              Comment


              • #8
                Originally posted by h3ll View Post
                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

                Comment


                • #9
                  Originally posted by RamonaS View Post
                  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";

                  Comment


                  • #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

                    Comment


                    • #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]

                      Comment


                      • #12
                        Originally posted by hhcm View Post
                        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.

                        Comment

                        Working...
                        X