Dalam PHP, kita selalunya perlu menentukan sama ada tatasusunan mengandungi rentetan tertentu. Dalam artikel ini, kita akan meneroka cara PHP menentukan sama ada rentetan tertentu wujud dalam tatasusunan dan cara mencari serta menapis elemen dalam tatasusunan.
Kaedah 1: Gunakan fungsi in_array()
php menyediakan fungsi in_array(), yang boleh mencari dengan mudah sama ada elemen yang ditentukan disertakan dalam tatasusunan. Sintaks fungsi ini adalah seperti berikut:
in_array($search, $array);
di mana parameter $search ialah elemen yang akan ditemui dan parameter $array ialah tatasusunan yang akan ditemui. Mengembalikan benar jika elemen $search terkandung dalam $array, false sebaliknya. Kod sampel adalah seperti berikut:
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search1 = 'banana'; $search2 = 'grape'; if (in_array($search1, $fruits)) { echo "Fruits array contains $search1"; } else { echo "Fruits array does not contain $search1"; } if (in_array($search2, $fruits)) { echo "Fruits array contains $search2"; } else { echo "Fruits array does not contain $search2"; }
Laksanakan kod di atas, hasilnya akan menjadi:
Fruits array contains banana Fruits array does not contain grape
Kaedah 2: Gunakan fungsi array_search()
php juga menyediakan fungsi array_search() boleh mencari kejadian pertama elemen dalam tatasusunan. Sintaks fungsi ini adalah seperti berikut:
array_search($search, $array);
di mana parameter $search ialah elemen yang akan ditemui dan parameter $array ialah tatasusunan yang akan ditemui. Jika elemen carian terkandung dalam tatasusunan, mengembalikan nama kunci kejadian pertama elemen dalam tatasusunan jika tidak, mengembalikan palsu. Kod sampel adalah seperti berikut:
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search1 = 'banana'; $search2 = 'grape'; $result1 = array_search($search1, $fruits); $result2 = array_search($search2, $fruits); if ($result1 !== false) { echo "$search1 found at position $result1"; } else { echo "$search1 not found in the array"; } if ($result2 !== false) { echo "$search2 found at position $result2"; } else { echo "$search2 not found in the array"; }
Laksanakan kod di atas, hasilnya akan menjadi:
banana found at position 1 grape not found in the array
Kaedah 3: Gunakan in_array() digabungkan dengan array_map() fungsi
Kadangkala, kita perlu mencari sama ada tatasusunan mengandungi sebarang elemen daripada set rentetan. Pada masa ini, kita boleh menggunakan fungsi in_array() digabungkan dengan fungsi array_map(). Fungsi array_map() melaksanakan fungsi yang ditentukan pengguna pada setiap elemen tatasusunan dan mengembalikan tatasusunan baharu yang mengandungi hasil semua fungsi. Kita boleh memanggil fungsi in_array() dalam fungsi array_map() untuk mencari nilai. Kod sampel adalah seperti berikut:
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $search = array('apple', 'watermelon'); $found = array_filter(array_map(function($needle) use($fruits){ return in_array($needle, $fruits); }, $search)); if ($found) { echo "Found these fruits: "; print_r($found); } else { echo "No fruits found"; }
Laksanakan kod di atas, hasilnya ialah:
Found these fruits: Array ( [0] => 1 )
Dalam kod di atas, kami menggunakan fungsi array_map() dan array_filter( ) fungsi . Fungsi array_map() berulang melalui setiap elemen dalam tatasusunan $search, memanggil fungsi tanpa nama pada setiap elemen yang menyemak sama ada elemen itu terkandung dalam tatasusunan $fruits. Fungsi array_filter() menerima tatasusunan dan mengembalikan tatasusunan yang mengandungi hanya elemen yang benar. Dalam kes ini, $found mengandungi hanya kedudukan di mana unsur itu wujud.
Kaedah 4: Gunakan fungsi preg_grep()
Jika kita perlu mencari elemen dalam tatasusunan yang mengandungi corak tertentu, seperti semua elemen bermula dengan huruf 'a', kita boleh gunakan preg_grep dalam fungsi php (). Fungsi preg_grep() mengembalikan tatasusunan yang mengandungi semua elemen yang sepadan dengan corak. Kod sampel adalah seperti berikut:
$fruits = array('apple', 'banana', 'orange', 'kiwi'); $pattern = '/^a/'; $found = preg_grep($pattern, $fruits); if ($found) { echo "Found these fruits: "; print_r($found); } else { echo "No fruits found"; }
Melaksanakan kod di atas, hasilnya akan menjadi:
Found these fruits: Array ( [0] => apple )
Dalam kod di atas, kami menggunakan ungkapan biasa "/^a/ " untuk memadankan elemen bermula dengan huruf 'a'. Fungsi preg_grep() menerima ungkapan biasa dan tatasusunan untuk dicari, dan ia mengembalikan tatasusunan yang mengandungi semua elemen yang sepadan dengan ungkapan.
Ringkasan
Artikel ini memperkenalkan empat kaedah berbeza dalam php untuk mencari sama ada tatasusunan mengandungi rentetan tertentu. Kaedah ini termasuk menggunakan fungsi in_array(), fungsi array_search(), fungsi in_array() digabungkan dengan fungsi array_map() dan fungsi preg_grep(). Kaedah ini semuanya kaedah pertanyaan tatasusunan yang biasa digunakan dalam PHP Di tempat kerja, kita boleh memilih kaedah yang sesuai untuk digunakan mengikut situasi tertentu.
Atas ialah kandungan terperinci Terokai cara PHP menentukan sama ada rentetan wujud dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!