Rumah > Artikel > pembangunan bahagian belakang > Adakah strposa Alternatif yang Lebih Cekap kepada strpos untuk Carian Berbilang Rentetan dalam PHP?
Utilitarian Strpos and Array-based Needle Searches
Apabila mencari berbilang rentetan dalam rentetan, strpos fungsi PHP terbina dalam mungkin tidak cukuplah. Untuk menangani perkara ini, coretan daripada php.net mencadangkan fungsi tersuai, strposa, yang cekap mencari kejadian pertama mana-mana rentetan daripada tatasusunan yang diberikan dalam rentetan tertentu.
Pelaksanaan strposa
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach($needles as $needle) { if(strpos($haystack, $needle, $offset) !== false) { return true; // stop on first true result } } return false; }
Penggunaan Contoh
Pertimbangkan rentetan:
$string = 'Whis string contains word "cheese" and "tea".';
Dan pelbagai rentetan:
$array = ['burger', 'melon', 'cheese', 'milk'];
Menggunakan strposa:
if (strposa($string, $array, 1)) { echo 'true'; } else { echo 'false'; }
Ini akan menghasilkan benar kerana rentetan mengandungi jarum daripada tatasusunan, iaitu "keju".
Strposa yang dipertingkatkan
Versi strposa yang dikemas kini mengoptimumkan prestasi dengan menamatkan carian apabila padanan jarum pertama. Ini meningkatkan kecekapan apabila mencari berbilang jarum dalam timbunan jerami.
Atas ialah kandungan terperinci Adakah strposa Alternatif yang Lebih Cekap kepada strpos untuk Carian Berbilang Rentetan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!