Heim >Backend-Entwicklung >PHP-Tutorial >Wie finde ich das zweite (oder n-te) Vorkommen einer Zeichenfolge mithilfe der Rekursion in PHP?

Wie finde ich das zweite (oder n-te) Vorkommen einer Zeichenfolge mithilfe der Rekursion in PHP?

Susan Sarandon
Susan SarandonOriginal
2024-10-18 14:43:30405Durchsuche

How to Locate the Second (or nth) Occurrence of a String Using Recursion in PHP?

Mehrfaches Vorkommen eines Strings mit strpos lokalisieren: Das zweite Vorkommen aufdecken

strpos ist eine leistungsstarke Funktion, die es Programmierern ermöglicht, die Position von zu bestimmen das erste Vorkommen eines Teilstrings innerhalb eines Strings. Was aber, wenn das Ziel darin besteht, das zweite Vorkommnis zu identifizieren? Diese Frage stellt sich häufig, insbesondere wenn es um komplexe Datenmanipulationsaufgaben geht.

Antwort: Rekursion für aufeinanderfolgende Suchvorgänge nutzen

Um diese Herausforderung zu bewältigen, können Entwickler die Rekursion nutzen, a Technik, die für dieses Szenario besonders geeignet ist. So wird es erreicht:

  1. Abruf des ersten Vorkommens:Beginnen Sie mit strpos, um die Position des ersten Vorkommens der Teilzeichenfolge zu ermitteln.
  2. Rekursiv Aufruf: Wenn das gewünschte Vorkommen größer als 1 ist, führen Sie einen rekursiven Aufruf von strpos durch und geben Sie dieses Mal eine Startposition an, die um die Länge des vom ersten Vorkommen erhaltenen Teilstrings nach vorne verschoben wird.
  3. Rekursion bis zum gewünschten Vorkommen: Wiederholen Sie Schritt 2, bis das gewünschte Vorkommen gefunden wird.

Benutzerdefinierte Funktion zur Vereinfachung des Prozesses

Zur Optimierung Mit diesem Prozess kann eine benutzerdefinierte Funktion entwickelt werden:

function strposX($haystack, $needle, $number) {
    if ($number == 1) {
        return strpos($haystack, $needle);
    } elseif ($number > 1) {
        return strpos($haystack, $needle, strposX($haystack, $needle, $number - 1) + strlen($needle));
    } else {
        return error_log('Error: Value for parameter $number is out of range');
    }
}

Alternativ kann eine vereinfachte Version verwendet werden:

function strposX($haystack, $needle, $number = 0)
{
    return strpos($haystack, $needle,
        $number > 1 ?
        strposX($haystack, $needle, $number - 1) + strlen($needle) : 0
    );
}

Durch die Einbindung dieser Ansätze können Programmierer mehrere Vorkommen von a effektiv identifizieren Teilzeichenfolge, einschließlich des zweiten Vorkommens, wodurch sie mit erweiterten Funktionen zur Zeichenfolgenmanipulation ausgestattet werden.

Das obige ist der detaillierte Inhalt vonWie finde ich das zweite (oder n-te) Vorkommen einer Zeichenfolge mithilfe der Rekursion in PHP?. 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