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

Wie kann ich mithilfe von Arrays effizient nach mehreren Teilzeichenfolgen innerhalb einer Zeichenfolge in PHP suchen?

DDD
Freigeben: 2024-11-27 11:59:13
Original
657 Leute haben es durchsucht

How Can I Efficiently Search for Multiple Substrings within a String in PHP Using Arrays?

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);
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage