Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich effizient nach mehreren Teilzeichenfolgen in einer PHP-Zeichenfolge suchen?

Wie kann ich effizient nach mehreren Teilzeichenfolgen in einer PHP-Zeichenfolge suchen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-27 13:17:16792Durchsuche

How Can I Efficiently Check for Multiple Substrings in a PHP String?

Mehrere Teilzeichenfolgen mithilfe von strpos und Arrays finden

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn