Dalam PHP, strpos ialah fungsi yang biasa digunakan untuk mencari kejadian pertama subrentetan dalam rentetan tertentu. Walaupun ia mampu mencari subrentetan tunggal, mungkin terdapat situasi di mana anda perlu mencari berbilang subrentetan serentak.
Dalam contoh khusus anda, anda ingin menyemak sama ada semua elemen dalam tatasusunan $find_letters wujud dalam pembolehubah $string. Walau bagaimanapun, menghantar terus tatasusunan sebagai jarum ke strpos tidak akan berfungsi kerana ia menjangkakan satu nilai.
Untuk menangani perkara ini, anda boleh menggunakan fungsi tersuai yang melaksanakan tugas yang anda perlukan. Berikut ialah versi terkini bagi fungsi yang disediakan sebagai jawapan:
function strposa(string $haystack, array $needles, int $offset = 0): bool { foreach ($needles as $needle) { if (strpos($haystack, $needle, $offset) !== false) { return true; // Stop on the first true result } } return false; }
Dalam fungsi ini, kami mengulangi setiap elemen dalam tatasusunan $needles. Untuk setiap elemen, kami menggunakan strpos untuk menyemak sama ada ia wujud dalam rentetan $haystack, bermula dari kedudukan $offset yang ditentukan. Jika mana-mana elemen sepadan, kami kembali benar serta-merta, menunjukkan bahawa carian berjaya.
Contoh penggunaan:
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; if (strposa($string, $array)) { echo 'true'; } else { echo 'false'; }
Output:
true
Dalam ini contoh, fungsi mengembalikan benar kerana rentetan mengandungi salah satu elemen dalam tatasusunan, iaitu "keju."
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Berbilang Substring dengan Cekap dalam Rentetan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!