Rumah >pembangunan bahagian belakang >masalah PHP >PHP menentukan sama ada rentetan mengandungi elemen tatasusunan
Dalam pengaturcaraan PHP, selalunya perlu untuk menentukan sama ada rentetan mengandungi elemen dalam tatasusunan. Operasi jenis ini sangat biasa dalam pembangunan sebenar, dan biasanya dilaksanakan melalui fungsi rentetan dan fungsi tatasusunan.
Strpos fungsi rentetan dalam PHP boleh digunakan untuk menentukan sama ada rentetan mengandungi rentetan lain. Mengembalikan indeks kedudukan yang mengandungi jika disertakan, palsu sebaliknya.
Kod sampel:
$str = 'hello world'; $needle = 'world'; if (strpos($str, $needle) !== false) { echo '包含'; } else { echo '不包含'; }
Hasil keluaran kod di atas ialah "mengandungi".
Dengan kaedah ini, kita boleh menggunakan gelung foreach untuk lelaran melalui setiap elemen dalam tatasusunan dan kemudian mencari elemen dalam rentetan. Tetapi terdapat masalah dengan kaedah ini, iaitu, jika terdapat elemen yang sama dalam tatasusunan, adalah mustahil untuk mengetahui di mana elemen itu muncul dalam rentetan.
Cara lain ialah menggunakan fungsi ungkapan biasa preg_match. Fungsi ini digunakan untuk mencari kandungan dalam rentetan yang sepadan dengan corak yang ditentukan. Anda boleh menggunakan ungkapan biasa untuk menggabungkan elemen tatasusunan ke dalam corak yang sepadan dan kemudian mencari corak itu dalam rentetan.
Kod sampel:
$str = 'hello world'; $needle = array('world', 'foo'); $pattern = '/' . implode('|', $needle) . '/'; if (preg_match($pattern, $str, $matches)) { echo '包含匹配项:' . $matches[0]; } else { echo '不包含'; }
Keluaran kod di atas ialah "Mengandungi padanan: dunia".
Fungsi tatasusunan in_array dalam PHP juga boleh digunakan untuk menentukan sama ada rentetan mengandungi elemen dalam tatasusunan. Fungsi ini digunakan untuk menyemak sama ada nilai wujud dalam tatasusunan dan mengembalikan benar jika wujud, jika tidak ia mengembalikan palsu.
Kod sampel:
$str = 'hello world'; $needle = array('world', 'foo'); if (in_array($needle, $str)) { echo '包含'; } else { echo '不包含'; }
Hasil keluaran kod di atas ialah "tidak mengandungi".
Nota: Perhatikan susunan parameter fungsi in_array dan strpos, kerana susunan parameternya berbeza.
Kesimpulan
Dalam pembangunan sebenar, tiga kaedah di atas boleh digunakan untuk menentukan sama ada rentetan mengandungi elemen dalam tatasusunan. Prestasi dan kerumitan kaedah berbeza berbeza-beza, dan kaedah yang paling sesuai boleh dipilih berdasarkan situasi tertentu. Jika anda perlu memadankan berbilang elemen tatasusunan, ungkapan biasa preg_match ialah kaedah yang paling fleksibel jika anda hanya perlu menilai satu elemen, ia akan menjadi lebih mudah dan lebih berkesan untuk menggunakan fungsi rentetan strpos atau fungsi tatasusunan in_array.
Atas ialah kandungan terperinci PHP menentukan sama ada rentetan mengandungi elemen tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!