Maison >développement back-end >tutoriel php >Comment trouver la deuxième occurrence d'une chaîne à l'aide de strpos
Recherche de la deuxième occurrence d'une chaîne à l'aide de strpos
La fonction strpos en PHP est couramment utilisée pour trouver la position de la première occurrence de une sous-chaîne dans une chaîne. Cependant, il peut y avoir des cas où vous devrez récupérer la deuxième occurrence ou les occurrences suivantes.
Récursif avec strpos
Pour trouver la deuxième occurrence d'une sous-chaîne, une approche est pour utiliser la récursivité et exploiter les fonctionnalités existantes de strpos. Ceci peut être réalisé en appelant strpos à plusieurs reprises, en passant l'index de l'occurrence précédente comme position de départ pour la recherche suivante :
<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>
Cette approche exploite la récursivité pour trouver de manière itérative les occurrences suivantes de la sous-chaîne jusqu'à l'occurrence souhaitée. est trouvé ou la fin de la chaîne est atteinte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!