Heim >Backend-Entwicklung >PHP-Tutorial >So finden Sie das zweite Vorkommen einer Zeichenfolge mithilfe von strpos

So finden Sie das zweite Vorkommen einer Zeichenfolge mithilfe von strpos

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-18 14:45:30343Durchsuche

How to Find the Second Occurrence of a String Using strpos

Das zweite Vorkommen einer Zeichenfolge mithilfe von strpos finden

Die Funktion strpos in PHP wird häufig verwendet, um die Position des ersten Vorkommens von zu ermitteln ein Teilstring innerhalb eines Strings. Es kann jedoch Fälle geben, in denen Sie das zweite oder weitere Vorkommen abrufen müssen.

Rekursion mit strpos

Um das zweite Vorkommen einer Teilzeichenfolge zu finden, gibt es einen Ansatz um Rekursion zu verwenden und die vorhandene Funktionalität von strpos zu nutzen. Dies kann erreicht werden, indem strpos wiederholt aufgerufen wird und der Index des vorherigen Vorkommens als Startposition für die nächste Suche übergeben wird:

<code class="php"><?php

/**
 * Find the position of the Xth occurrence of a substring in a string
 *
 * @param string $haystack The input haystack string
 * @param string $needle The substring to search for
 * @param int $number The occurrence number to find
 * @return int|bool The index of the Xth occurrence or false if not found
 */
function strposX($haystack, $needle, $number) {
    // Handle the base case (finding the first occurrence)
    if ($number == 1) {
        return strpos($haystack, $needle);
    } 
    // Recursively search for the Nth occurrence (N > 1)
    elseif ($number > 1) {
        $previousOccurrence = strposX($haystack, $needle, $number - 1);
        // If the previous occurrence is found, continue searching from there
        if ($previousOccurrence !== false) {
            return strpos($haystack, $needle, $previousOccurrence + strlen($needle));
        }
    } 
    // If the conditions are not met, return an error or false
    return false;
}

// Example usage
$haystack = 'This is a test string.';
$needle = 'is';
$secondOccurrence = strposX($haystack, $needle, 2);

if ($secondOccurrence !== false) {
    echo 'The second occurrence of "' . $needle . '" is at index ' . $secondOccurrence . ' in "' . $haystack . '".';
} else {
    echo 'The second occurrence of "' . $needle . '" was not found.';
}</code>

Dieser Ansatz nutzt die Rekursion, um iterativ nachfolgende Vorkommen der Teilzeichenfolge bis zum gewünschten Vorkommen zu finden gefunden oder das Ende der Zeichenfolge erreicht ist.

Das obige ist der detaillierte Inhalt vonSo finden Sie das zweite Vorkommen einer Zeichenfolge mithilfe von strpos. 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