In PHP ist strpos eine häufig verwendete Funktion, um nach dem ersten Vorkommen einer Teilzeichenfolge innerhalb einer bestimmten Zeichenfolge zu suchen. Obwohl es in der Lage ist, eine einzelne Teilzeichenfolge zu finden, kann es Situationen geben, in denen Sie nach mehreren Teilzeichenfolgen gleichzeitig suchen müssen.
In Ihrem spezifischen Beispiel möchten Sie prüfen, ob alle Elemente im Array $find_letters darin vorhanden sind die $string-Variable. Die direkte Übergabe eines Arrays als Nadel an strpos funktioniert jedoch nicht, da ein einzelner Wert erwartet wird.
Um dieses Problem zu beheben, können Sie eine benutzerdefinierte Funktion verwenden, die die von Ihnen benötigte Aufgabe ausführt. Hier ist eine aktualisierte Version der Funktion, die als Antwort bereitgestellt wird:
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach ($needles as $needle) { if (strpos($haystack, $needle, $offset) !== false) { return true; // Stop on the first true result } } return false; }
In dieser Funktion iterieren wir durch jedes Element im $needles-Array. Für jedes Element verwenden wir strpos, um zu überprüfen, ob es innerhalb der $haystack-Zeichenfolge vorhanden ist, beginnend an der angegebenen $offset-Position. Wenn eines der Elemente übereinstimmt, geben wir sofort „true“ zurück und geben damit an, dass die Suche erfolgreich war.
Verwendungsbeispiel:
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; if (strposa($string, $array)) { echo 'true'; } else { echo 'false'; }
Ausgabe:
true
Hier Beispielsweise gibt die Funktion „true“ zurück, da die Zeichenfolge eines der Elemente im Array enthält, nämlich „cheese“.
Das obige ist der detaillierte Inhalt vonWie kann ich effizient nach mehreren Teilzeichenfolgen in einer PHP-Zeichenfolge suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!