So durchsuchen Sie eine Zeichenfolge mithilfe eines Arrays nach mehreren Mustern
Die strpos-Funktion ist ein leistungsstarkes Tool zum Suchen nach einer bestimmten Teilzeichenfolge innerhalb einer Zeichenfolge. Allerdings kann immer nur nach einem einzelnen Muster gesucht werden. Was ist, wenn Sie überprüfen müssen, ob eine Zeichenfolge Muster aus einer Liste enthält?
Betrachten Sie das folgende Beispiel:
$find_letters = ['a', 'c', 'd']; $string = 'abcdefg';
Wenn wir versuchen, die Zeichenfolge nach einer Reihe von Buchstaben zu durchsuchen, verwenden Sie: strpos, es wird nicht funktionieren. Dies liegt daran, dass strpos als zweites Argument einen String und kein Array erwartet.
Erstellen einer Funktion für die Array-Suche mit strpos
Um dieses Problem zu lösen, können wir erstellen Eine benutzerdefinierte Funktion, die ein Array von Mustern und eine zu durchsuchende Zeichenfolge akzeptiert. Die Funktion durchläuft das Array, ruft strpos für jedes Muster auf und gibt die Position der ersten gefundenen Übereinstimmung zurück:
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; }
Diese Funktion kann wie folgt verwendet werden:
$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
Fazit
Durch die Erstellung einer benutzerdefinierten Funktion, die die strpos-Funktionalität umschließt, können wir jetzt mithilfe eines Arrays effizient eine Zeichenfolge nach mehreren Mustern durchsuchen. Diese Technik kann in einer Vielzahl von Szenarien nützlich sein, beispielsweise bei der Validierung von Benutzereingaben oder der Durchführung einer Textanalyse.
Das obige ist der detaillierte Inhalt vonWie durchsucht man mithilfe eines Arrays in PHP effizient eine Zeichenfolge nach mehreren Mustern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!