Dalam PHP, kadangkala kita perlu menentukan sama ada rentetan wujud dalam tatasusunan. Keadaan ini sangat biasa dalam pengaturcaraan Sebagai contoh, kita perlu menentukan sama ada kandungan yang dimasukkan oleh pengguna adalah kata kunci tertentu, atau kita perlu menyemak sama ada nama fail mengandungi sambungan fail tertentu, dsb. Setiap kali kita perlu mencari rentetan tertentu dalam tatasusunan yang besar, kita perlu mempunyai cara yang pantas dan boleh dipercayai untuk mengetahui sama ada rentetan itu terdapat dalam tatasusunan.
PHP menyediakan beberapa kaedah untuk menentukan sama ada rentetan wujud dalam tatasusunan. Berikut ialah beberapa daripadanya:
1 Gunakan fungsi in_array()
Fungsi in_array() ialah fungsi dalam PHP yang digunakan untuk menyemak sama ada nilai wujud dalam tatasusunan. Sintaksnya adalah seperti berikut:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
di mana $needle ialah nilai yang boleh ditemui, $haystack ialah nilai yang boleh ditemui dalam Antara tatasusunan yang hendak dicari, $strict ialah parameter pilihan yang digunakan untuk menunjukkan sama ada hendak melakukan perbandingan ketat. Jika argumen $strict adalah BENAR, fungsi in_array() akan mempertimbangkan jenis apabila melihat, jika tidak, ia tidak akan.
Berikut ialah contoh mudah menggunakan fungsi in_array() untuk menentukan sama ada rentetan wujud dalam tatasusunan:
$keywords = array("PHP", "MySQL", "HTML " , "CSS");
$searchTerm = "MySQL";
jika (dalam_array($searchTerm, $keywords)) {
echo "字符串$searchTerm存在于数组中";
} lain {
echo "字符串$searchTerm不存在于数组中";
}
Dalam contoh di atas, kami mula-mula mentakrifkan tatasusunan $kata kunci dan menambah beberapa elemen padanya. Kemudian, kami menentukan rentetan yang ingin kami cari, $searchTerm. Seterusnya, kami menggunakan fungsi in_array() untuk menyemak sama ada $searchTerm wujud dalam tatasusunan $keywords. Jika $searchTerm wujud dalam tatasusunan $keywords, rentetan "$searchTerm wujud dalam tatasusunan" akan dikeluarkan, jika tidak rentetan "$searchTerm tidak wujud dalam tatasusunan" akan menjadi output.
2. Gunakan fungsi array_search()
Fungsi array_search() ialah fungsi lain dalam PHP yang digunakan untuk mencari kedudukan nilai tertentu dalam tatasusunan. Sintaksnya adalah seperti berikut:
pencarian_tatasusunan bercampur ( $needle bercampur , tatasusunan $haystack [, bool $strict = FALSE ] )
di mana $needle ialah nilai yang boleh ditemui dan $haystack ialah nilai yang akan ditemui Dalam tatasusunan yang hendak dicari, $strict ialah parameter pilihan yang digunakan untuk menunjukkan sama ada hendak melakukan perbandingan ketat. Jika argumen $strict adalah BENAR, fungsi in_array() akan mempertimbangkan jenis apabila melihat, jika tidak, ia tidak akan.
Berikut ialah contoh mudah menggunakan fungsi array_search() untuk menentukan sama ada rentetan wujud dalam tatasusunan:
$keywords = array("PHP", "MySQL", "HTML" , "CSS");
$searchTerm = "MySQL";
$searchResult = array_search($searchTerm, $keywords);
jika ($searchResult !== false) {
echo "字符串$searchTerm存在于数组中,在位置$searchResult";
} lain {
echo "字符串$searchTerm不存在于数组中";
}
Dalam contoh di atas, kami mula-mula mentakrifkan tatasusunan $kata kunci dan rentetan untuk mencari $searchTerm. Kami kemudian menggunakan fungsi array_search() untuk mencari kedudukan $searchTerm dalam tatasusunan $keywords. Jika $searchTerm wujud dalam tatasusunan $keywords, maka pembolehubah $searchResult akan mengandungi kedudukannya dan rentetan "$searchTerm wujud dalam tatasusunan pada kedudukan $searchResult" adalah output. Jika tidak, rentetan "$searchTerm tidak wujud dalam tatasusunan" akan dikeluarkan.
3. Gunakan fungsi in_array() dan array_keys()
Cara lain untuk mencari rentetan tertentu dalam tatasusunan ialah menggunakan gabungan fungsi in_array() dan array_keys(). Kaedah ini mula-mula menggunakan fungsi in_array() untuk menyemak sama ada rentetan wujud dalam tatasusunan, jika ia berlaku kemudian menggunakan fungsi array_keys() untuk mendapatkan semua kedudukannya.
Berikut ialah contoh mudah menggunakan fungsi in_array() dan array_keys() untuk menentukan sama ada rentetan wujud dalam tatasusunan:
$keywords = array("PHP", "MySQL " , "HTML", "CSS", "PHP");
$searchTerm = "PHP";
if (in_array($searchTerm, $keywords)) {
$positions = array_keys($keywords, $searchTerm); echo "字符串$searchTerm出现在数组中的位置:" . implode(",", $positions);
} else {
echo "字符串$searchTerm不存在于数组中";
}
Dalam contoh di atas, kami telah menyediakan tatasusunan $kata kunci dengan berbilang elemen. Kami kemudiannya menentukan rentetan yang ingin kami cari $searchTerm dan gunakan fungsi in_array() untuk menyemak sama ada rentetan itu wujud dalam tatasusunan $keywords. Jika $searchTerm wujud dalam tatasusunan $keywords, maka kami menggunakan fungsi array_keys() untuk mendapatkan kedudukan semua $searchTerms dalam tatasusunan dan menggunakan fungsi implode() untuk mengeluarkannya sebagai rentetan yang dipisahkan koma. Jika tidak, rentetan "$searchTerm tidak wujud dalam tatasusunan" akan dikeluarkan.
Ringkasan
Dalam PHP, terdapat beberapa cara untuk menentukan sama ada rentetan wujud dalam tatasusunan. Menulis kod menggunakan mana-mana kaedah ini hendaklah pantas dan boleh dipercayai. Menggunakan fungsi in_array() anda boleh menyemak terus sama ada rentetan wujud dalam tatasusunan. Menggunakan fungsi array_search() anda boleh mencari kedudukan rentetan dalam tatasusunan. Akhir sekali, jika anda perlu mendapatkan kedudukan semua rentetan tertentu dalam tatasusunan, anda boleh menggabungkan fungsi in_array() dan array_keys().
Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada rentetan wujud dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!