Verwenden eines Arrays zum Suchen von Strings mit strpos
Die strpos-Funktion wird häufig verwendet, um die Position eines Teilstrings innerhalb eines Strings zu lokalisieren. Allerdings kann es manchmal nützlich sein, mithilfe einer Reihe von Nadeln gleichzeitig nach mehreren Teilzeichenfolgen zu suchen.
Das Problem
Leider ist dies mit der Standardimplementierung von strpos nicht möglich eine Reihe von Nadeln passieren. Der Versuch, dies zu tun, führt, wie im bereitgestellten Beispiel gezeigt, zu unbefriedigenden Ergebnissen.
Die Lösung
Glücklicherweise kann eine benutzerdefinierte Funktion erstellt werden, um die Funktionalität zu erweitern von Strpos und nehmen Arrays von Nadeln auf. Der folgende Codeausschnitt, inspiriert von Beiträgen der PHP-Community, bietet eine Lösung:
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach($needles as $needle) { if(strpos($haystack, $needle, $offset) !== false) { return true; // stop on first true result } } return false; }
Verwendung
Um diese Funktion zu nutzen, können Sie den Haystack-String übergeben , das Nadelarray und ein optionaler Offset als Parameter. Zum Beispiel:
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; var_dump(strposa($string, $array)); // will return true, since "cheese" has been found
Dadurch wird die Zeichenfolge nach dem Vorhandensein einer der Nadeln im Array durchsucht. Wenn eine Nadel gefunden wird, gibt die Funktion „true“ zurück und stoppt die weitere Iteration.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP einen String effizient nach mehreren Teilstrings durchsuchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!