| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

15-07-2009, 13:10
|
|
RamonaS
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 177
|
|
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! :-(
|

15-07-2009, 13:12
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
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"; }
|

15-07-2009, 13:32
|
|
Slava
PHP Senior
|
|
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.583
|
|
Zitat:
Zitat von RamonaS
Hallo,
Wie kann ich diesen String durchsuchen ob darin, A2 oder B13 vorkommt?
(
|
PHP-Code:
if(str_ireplace($find,'',$str)!=$str) echo 'ein gefunden';
Geändert von Slava (15-07-2009 um 13:35 Uhr)
|

15-07-2009, 13:37
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von Slava
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?
|

15-07-2009, 13:43
|
|
Slava
PHP Senior
|
|
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.583
|
|
A2 vorkommt in A21 und in A22 wenn sie was anderes sucht, dann muss sie das auch anderes beschreiben.
|

15-07-2009, 13:45
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von Slava
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.
|

15-07-2009, 13:57
|
|
Slava
PHP Senior
|
|
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.583
|
|
Zitat:
Zitat von h3ll
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.
|

15-07-2009, 15:40
|
|
RamonaS
Registrierter Benutzer
|
|
Registriert seit: Mar 2009
Beiträge: 177
|
|
Zitat:
Zitat von h3ll
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.
|

15-07-2009, 15:55
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von RamonaS
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";
}
|

15-07-2009, 15:58
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Und ich denke: Du suchst die Differenz zwischen von 2 Arrays..
(oder ist es die Schnittmenge)
 Das Handbuch gibt gerne Auskunft
|

15-07-2009, 16:02
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Im übrigen .. Needle bei in_array ist mixed. Nimmt also auch ein Array.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

15-07-2009, 16:07
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Zitat:
Zitat von hhcm
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.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|