Cara Mencari Rentetan untuk Berbilang Corak Menggunakan Tatasusunan
Fungsi strpos ialah alat yang berkuasa untuk mencari subrentetan tertentu dalam rentetan. Walau bagaimanapun, ia hanya boleh mencari corak tunggal pada satu masa. Bagaimana jika anda perlu menyemak sama ada rentetan mengandungi mana-mana senarai corak?
Pertimbangkan contoh berikut:
$find_letters = ['a', 'c', 'd']; $string = 'abcdefg';
Jika kita cuba mencari rentetan untuk tatasusunan huruf menggunakan strpos, ia tidak akan berfungsi. Ini kerana strpos menjangkakan rentetan sebagai hujah kedua, bukan tatasusunan.
Mencipta Fungsi untuk Carian Tatasusunan dengan strpos
Untuk menyelesaikan masalah ini, kita boleh mencipta fungsi tersuai yang menerima tatasusunan corak dan rentetan untuk dicari. Fungsi akan berulang melalui tatasusunan, memanggil strpos untuk setiap corak, dan mengembalikan kedudukan padanan pertama yang ditemui:
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; }
Fungsi ini boleh digunakan seperti berikut:
$string = 'This string contains word "cheese" and "tea".'; $array = ['burger', 'melon', 'cheese', 'milk']; var_dump(strposa($string, $array)); // will return true, since "cheese" has been found
Kesimpulan
Dengan mencipta fungsi tersuai yang membungkus fungsi strpos, kami kini boleh mencari dengan cekap rentetan untuk berbilang corak menggunakan tatasusunan. Teknik ini boleh berguna dalam pelbagai senario, seperti mengesahkan input pengguna atau melakukan analisis teks.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Rentetan untuk Pelbagai Corak Menggunakan Array dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!