PHP menentukan sama ada rentetan wujud dalam tatasusunan

WBOY
Lepaskan: 2023-05-22 18:20:37
asal
722 orang telah melayarinya

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.

Kaedah 1: Gunakan fungsi in_array

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); 
Salin selepas log masuk

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'不存在于数组中";
}
Salin selepas log masuk

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';
}
Salin selepas log masuk

Hasil keluaran ialah: "3" tiada dalam $a dengan semakan ketat

Kaedah 2: Gunakan fungsi array_search

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); 
Salin selepas log masuk

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'不存在于数组中";
}
Salin selepas log masuk

Hasil keluarannya ialah: rentetan 'biru'. wujud dalam tatasusunan, dan nama kunci yang sepadan ialah 2

Kaedah 3: Gunakan in_array dan array_map digabungkan

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;
}
Salin selepas log masuk

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'不存在于数组中";
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!