strpos mit Arrays: Ein tieferer Einblick
In PHP sucht die strpos-Funktion nach einer Zeichenfolge innerhalb einer anderen Zeichenfolge. Wir stoßen oft auf Situationen, in denen wir nach mehreren Zeichenfolgen gleichzeitig suchen möchten. Obwohl der bereitgestellte Code diese Aufgabe nicht erfüllen kann, können wir mithilfe einer Reihe von Suchbegriffen nach alternativen Lösungen suchen.
Benutzerdefinierte Funktion für Array-Nadeln
Ein Ansatz ist das Erstellen Eine benutzerdefinierte Funktion, die die Funktionalität von strpos für ein Array von Nadeln nachahmt:
function strposa($haystack, $needles=array(), $offset=0) { $chr = array(); foreach($needles as $needle) { $res = strpos($haystack, $needle, $offset); if ($res !== false) $chr[$needle] = $res; } if(empty($chr)) return false; return min($chr); }
Diese Funktion benötigt eine Heuhaufen-Zeichenfolge, ein Array von Nadeln Suche nach und ein optionaler Offset. Es gibt den Index des ersten Auftretens einer der Nadeln zurück oder false, wenn keine gefunden werden.
Verbesserte benutzerdefinierte Funktion
Um diese Funktion zu verbessern, können wir aufhören die Suche, sobald die erste Nadel gefunden wurde:
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach($needles as $needle) { if(strpos($haystack, $needle, $offset) !== false) { return true; } } return false; }
Diese aktualisierte Funktion durchsucht den Heuhaufen nach jeder Nadel im Array und gibt „true“ zurück, sobald sie sie findet ein Streichholz. Es ist effizienter, wenn mehrere Nadeln im Heuhaufen vorhanden sein können.
Verwendungsbeispiele
Um diese Funktionen zu verwenden, übergeben Sie einfach die Heuhaufenzeichenfolge und das Nadelarray als Argumente .
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; if(strposa($string, $array)) { echo 'true'; // since "cheese" is found }
In diesem Beispiel gibt das Skript „true“ aus, da „cheese“ ein Teilstring von ist Heuhaufen.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Arrays effizient nach mehreren Teilzeichenfolgen innerhalb einer Zeichenfolge in PHP suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!