Heim > Artikel > Backend-Entwicklung > Ist strposa eine effizientere Alternative zu strpos für die Suche nach mehreren Zeichenfolgen in PHP?
Utilitaristische Strpos- und Array-basierte Nadelsuche
Bei der Suche nach mehreren Zeichenfolgen innerhalb einer Zeichenfolge funktioniert die integrierte PHP-Funktion strpos möglicherweise nicht genügen. Um dieses Problem zu beheben, schlägt ein Snippet von php.net eine benutzerdefinierte Funktion, strposa, vor, die effizient das erste Vorkommen einer beliebigen Zeichenfolge aus einem bestimmten Array innerhalb einer angegebenen Zeichenfolge findet.
Implementierung von strposa
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; }
Anwendungsbeispiel
Bedenken Sie das string:
$string = 'Whis string contains word "cheese" and "tea".';
Und ein Array von Strings:
$array = ['burger', 'melon', 'cheese', 'milk'];
Mit strposa:
if (strposa($string, $array, 1)) { echo 'true'; } else { echo 'false'; }
Dies gibt true aus, da der String eine Nadel aus dem enthält Array, nämlich „Käse“.
Verbessert strposa
Eine aktualisierte Version von strposa optimiert die Leistung, indem die Suche bei der ersten Nadelübereinstimmung beendet wird. Dies erhöht die Effizienz bei der Suche nach mehreren Nadeln im Heuhaufen.
Das obige ist der detaillierte Inhalt vonIst strposa eine effizientere Alternative zu strpos für die Suche nach mehreren Zeichenfolgen in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!