Rumah > Artikel > pembangunan bahagian belakang > PHP menentukan sama ada rentetan wujud dalam tatasusunan
Dalam pembangunan PHP, selalunya perlu untuk mencari sama ada rentetan tertentu wujud daripada tatasusunan rentetan. Operasi seperti ini sangat biasa Lagipun, dalam banyak senario, adalah perlu untuk menapis atau menapis berdasarkan kata kunci tertentu. Jadi, bagaimana untuk menentukan sama ada rentetan tertentu wujud dalam tatasusunan? Artikel ini akan memperkenalkan anda kepada beberapa kaedah praktikal.
PHP mempunyai fungsi in_array terbina dalam yang sangat mudah, yang digunakan untuk menentukan sama ada elemen berada dalam tatasusunan. Gunakan fungsi ini untuk menentukan dengan mudah sama ada rentetan wujud dalam tatasusunan. Berikut ialah sintaks asas untuk menggunakan fungsi in_array:
in_array($needle, $haystack);
Antaranya, $needle ialah rentetan yang hendak dicari dan $haystack ialah tatasusunan yang hendak dicari. Mengembalikan benar jika $needle wujud dalam tatasusunan $haystack, false sebaliknya.
Sebagai contoh, berikut ialah tatasusunan yang terdiri daripada tiga rentetan Kami ingin menentukan sama ada rentetan "biru" wujud dalam tatasusunan:
$colors = array("red", "green", "blue"); if(in_array("blue", $colors)){ echo "字符串'blue'存在于数组中"; } else { echo "字符串'blue'不存在于数组中"; }
Hasil keluarannya ialah: rentetan 'biru'. wujud dalam tatasusunan
Selain itu, in_array juga menyokong parameter ketiga $strict, yang digunakan untuk menunjukkan sama ada sepadan dengan ketat. Secara lalai, parameter ini adalah palsu, yang bermaksud bahawa selagi $needle muncul dalam $haystack, perlawanan itu dianggap berjaya. Walau bagaimanapun, jika parameter ketiga ditetapkan kepada benar, ia bukan sahaja memerlukan $needle muncul dalam $haystack, tetapi juga elemen dalam $needle dan $haystack adalah daripada jenis yang sama. Contohnya:
$a = array(1, 2, '3'); if (in_array('3', $a, true)) { echo '"3" is in $a with strict check'; } else { echo '"3" is not in $a with strict check'; }
Hasil keluaran ialah: "3" tiada dalam $a dengan semakan ketat
fungsi array_search digunakan untuk mencari dalam nilai tatasusunan A dan mengembalikan nama kunci nilai itu. Tidak seperti fungsi in_array, fungsi ini mengembalikan nama kunci yang dipadankan dan bukannya nilai benar atau palsu. Jika elemen tidak dijumpai, mengembalikan palsu. Berikut ialah sintaks asas untuk menggunakan fungsi array_search:
array_search($needle, $haystack);
di mana $needle ialah rentetan yang hendak dicari dan $haystack ialah tatasusunan yang hendak dicari. Jika $needle wujud dalam tatasusunan $haystack, kembalikan nama kunci yang sepadan dengan elemen, jika tidak, kembalikan palsu.
Sebagai contoh, berikut ialah tatasusunan yang terdiri daripada tiga rentetan Kami ingin menentukan sama ada rentetan "biru" wujud dalam tatasusunan:
$colors = array("red", "green", "blue"); $key = array_search("blue", $colors); if ( $key !== false ) { echo "字符串'blue'存在于数组中,对应键名为".$key; } else { echo "字符串'blue'不存在于数组中"; }
Hasil keluarannya ialah: rentetan 'biru'. wujud dalam tatasusunan, dan nama kunci yang sepadan ialah 2
Jika anda ingin menentukan sama ada rentetan wujud dalam berbilang tatasusunan, bukannya hanya Untuk mencari dalam tatasusunan, anda boleh menggunakan gabungan fungsi in_array dan array_map. Berikut ialah sintaks asas untuk menggunakan kaedah ini:
function check_string_one_of_many_arrays($string, $arrays) { return count(array_filter($arrays, function($array) use ($string) { return in_array($string, $array); })) > 0; }
Antaranya, $string ialah rentetan yang perlu dicari, dan $arrays ialah koleksi tatasusunan yang perlu ditemui. Fungsi ini mengembalikan nilai Boolean yang menunjukkan sama ada rentetan wujud dalam berbilang tatasusunan.
Sebagai contoh, kini terdapat dua tatasusunan $colors1 dan $colors2, dan adalah perlu untuk menentukan sama ada rentetan "biru" wujud di dalamnya:
$colors1 = array("red", "green", "blue"); $colors2 = array("yellow", "black", "white"); if(check_string_one_of_many_arrays("blue", array($colors1, $colors2))){ echo "字符串'blue'存在于数组中"; } else { echo "字符串'blue'不存在于数组中"; }
Hasil output ialah: rentetan 'biru' wujud Dalam tatasusunan
Ringkasan
Di atas ialah tiga cara biasa untuk menentukan sama ada rentetan wujud dalam tatasusunan. Bergantung pada keperluan senario yang berbeza, anda boleh memilih untuk menggunakan kaedah yang berbeza. Tidak kira kaedah yang digunakan, menilai sama ada rentetan wujud dalam tatasusunan adalah sangat mudah dan mudah difahami, dan ia layak digunakan secara meluas dalam pengaturcaraan PHP harian kami.
Atas ialah kandungan terperinci PHP menentukan sama ada rentetan wujud dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!