Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencari Kejadian Kedua Rentetan dalam PHP Menggunakan Kaedah Alternatif?

Bagaimana untuk Mencari Kejadian Kedua Rentetan dalam PHP Menggunakan Kaedah Alternatif?

Linda Hamilton
Linda Hamiltonasal
2024-10-18 14:46:021086semak imbas

How to Find the Second Occurrence of a String in PHP Using an Alternative Method?

Mencari Kejadian Kedua Rentetan Menggunakan strpos: Pendekatan Alternatif

Sebagai respons kepada pertanyaan mengenai cara mencari kejadian kedua rentetan menggunakan fungsi strpos , yang biasanya digunakan untuk mencari kejadian pertama, kami membentangkan penyelesaian alternatif.

Kod yang disediakan mentakrifkan fungsi tersuai, strposX, yang membolehkan mendapatkan semula kejadian Xth subrentetan dalam rentetan tertentu. Fungsi ini mengambil tiga parameter: $haystack (rentetan sumber), $needle (subrentetan untuk ditempatkan) dan $number, yang mewakili kejadian yang diingini untuk ditemui.

Untuk senario kejadian yang diingini ialah yang kedua (iaitu, $number ialah 2), fungsi strposX secara rekursif memanggil dirinya sendiri untuk mengenal pasti kedudukan kejadian pertama subrentetan, menambah panjang subrentetan pada kedudukan itu, dan menggunakan strpos untuk mencari kejadian kedua dalam baki bahagian rentetan.

Berikut ialah versi ringkas kod:

<code class="php">function strposX($haystack, $needle, $number = 0)
{
    return strpos($haystack, $needle,
        $number > 1 ?
        strposX($haystack, $needle, $number - 1) + strlen($needle) : 0
    );
}</code>

Menggunakan fungsi ini, seseorang boleh dengan mudah mendapatkan kejadian kedua subrentetan dalam rentetan, menawarkan yang serba boleh penyelesaian di luar pengenalpastian kejadian pertama standard yang disediakan oleh strpos.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Kejadian Kedua Rentetan dalam PHP Menggunakan Kaedah Alternatif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn