Mencari Kejadian Kedua Rentetan Menggunakan strpos
Fungsi strpos dalam PHP biasanya digunakan untuk mencari kedudukan kejadian pertama bagi subrentetan dalam rentetan. Walau bagaimanapun, mungkin terdapat keadaan di mana anda perlu mendapatkan kejadian kedua atau seterusnya.
Berulang dengan strpos
Untuk mencari kejadian kedua subrentetan, satu pendekatan ialah untuk menggunakan rekursi dan memanfaatkan kefungsian strpos sedia ada. Ini boleh dicapai dengan menggunakan strpos berulang kali, melepasi indeks kejadian sebelumnya sebagai kedudukan permulaan untuk carian seterusnya:
<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>
Pendekatan ini memanfaatkan rekursi untuk mencari berulang-ulang kejadian berikutnya bagi subrentetan sehingga kejadian yang diingini ditemui atau hujung rentetan dicapai.
Atas ialah kandungan terperinci Cara Mencari Kejadian Kedua Rentetan Menggunakan strpos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!