Dalam pembangunan PHP, tatasusunan ialah jenis data yang sangat biasa. Dalam tatasusunan, kita boleh menyimpan berbilang pembolehubah, dan pembolehubah ini boleh diakses dan diubah suai melalui subskrip. Walau bagaimanapun, dalam pembangunan sebenar, kita mungkin menghadapi beberapa masalah, seperti menyemak sama ada aksara wujud dalam tatasusunan. Dalam artikel ini, kita akan membincangkan cara menyemak sama ada aksara berada dalam tatasusunan.
Pertama, mari kita lihat contoh mudah. Katakan kita mempunyai tatasusunan yang mengandungi beberapa nama bandar:
$cities = array("北京", "上海", "广州", "深圳");
Sekarang, kami ingin menyemak sama ada nama ada dalam tatasusunan ini. Katakan kita ingin menyemak sama ada bandar "Shenzhen" berada dalam tatasusunan ini. Kita boleh menggunakan fungsi in_array() PHP untuk mencapai tujuan ini. Sintaks fungsi ini adalah seperti berikut:
in_array( $needle, $haystack [, $strict ] )
Parameter:
Fungsi ini mencari tatasusunan untuk nilai tertentu dan mengembalikan benar jika nilai ditemui, palsu sebaliknya. Kemudian kita boleh memanggil fungsi ini seperti ini:
if (in_array("深圳", $cities)) { echo "深圳是一个城市"; // 输出:深圳是一个城市 } else { echo "深圳不是一个城市"; }
Dalam contoh ini, kita mula-mula menggunakan fungsi in_array() untuk menyemak sama ada "Shenzhen" berada dalam tatasusunan $cities. Jika "Shenzhen" ditemui dalam tatasusunan, keluarkan "Shenzhen ialah bandar" jika tidak, keluarkan "Shenzhen bukan bandar".
Walau bagaimanapun, jika kita cuba menggunakan fungsi in_array() untuk mencari sama ada aksara wujud dalam tatasusunan, kita akan mendapati bahawa kita mungkin mendapat hasil yang salah. Contohnya:
$letters = array("a", "b", "c", "d"); if (in_array("ab", $letters)) { echo "找到了"; } else { echo "没找到"; // 输出:没找到 }
Dalam contoh di atas, kami cuba menyemak sama ada rentetan "ab" berada dalam tatasusunan $letters. Walau bagaimanapun, oleh kerana fungsi in_array() hanya menyemak satu item, ia mengembalikan palsu kerana "ab" bukan item.
Untuk menyelesaikan masalah ini, kita boleh menggunakan fungsi lain untuk mencari sama ada aksara wujud dalam tatasusunan. Berikut ialah beberapa kaedah:
Kita boleh menggunakan fungsi strpos() untuk mencari sama ada aksara wujud dalam tatasusunan. Fungsi ini mencari rentetan lain dalam rentetan dan mengembalikan kedudukan padanan pertama, jika ditemui. Jika tidak dijumpai, mengembalikan palsu. Kita boleh menggunakan fungsi ini untuk mencari aksara dalam tatasusunan. Berikut ialah contoh:
$letters = array("a", "b", "c", "d"); if (strpos(implode($letters), "ab") !== false) { echo "找到了"; // 输出:找到了 } else { echo "没找到"; }
Dalam contoh ini, kita mula-mula menggunakan fungsi implode() untuk menggabungkan semua item dalam tatasusunan $letters ke dalam rentetan, dan kemudian gunakan fungsi strpos() untuk mencari "ab" ada dalam rentetan ini. Jika ditemui, keluarkan "Dijumpai" jika tidak, keluarkan "Tidak Ditemui".
Kita juga boleh menggunakan fungsi preg_grep() untuk mencari sama ada aksara wujud dalam tatasusunan. Fungsi ini menerima corak ungkapan biasa dan memadankan semua item yang sepadan dalam tatasusunan. Kemudian, ia mengembalikan tatasusunan yang mengandungi semua padanan. Jika tiada padanan, mengembalikan palsu. Berikut ialah contoh:
$letters = array("a", "b", "c", "d"); if (preg_grep("/ab/", $letters)) { echo "找到了"; // 输出:找到了 } else { echo "没找到"; }
Dalam contoh ini, kami menggunakan fungsi preg_grep() untuk mencari sama ada rentetan "ab" wujud dalam tatasusunan. Ia mengembalikan tatasusunan baharu yang mengandungi padanan. Mengembalikan benar jika tatasusunan baharu tidak kosong, sebaliknya palsu. Oleh itu, jika "ab" ditemui, keluarkan "Dijumpai" sebaliknya, keluarkan "Tidak Ditemui".
Akhir sekali, kita boleh menggunakan fungsi array_filter() untuk mencari sama ada aksara wujud dalam tatasusunan. Fungsi ini menerima fungsi panggil balik dan menapis semua item yang tidak sepadan daripada tatasusunan. Ia kemudian mengembalikan tatasusunan yang mengandungi semua padanan. Jika tiada padanan, tatasusunan kosong dikembalikan. Berikut ialah contoh:
$letters = array("a", "b", "c", "d"); if (array_filter($letters, function($value) { return strpos($value, "a") !== false; })) { echo "找到了"; // 输出:找到了 } else { echo "没找到"; }
Dalam contoh ini, kami menggunakan fungsi array_filter() dan fungsi panggil balik untuk mencari sama ada rentetan "a" wujud dalam tatasusunan. Fungsi panggil balik menerima nilai dan mengembalikan benar atau salah yang menunjukkan sama ada nilai itu sepadan dengan kriteria carian. Fungsi array_filter() mengembalikan tatasusunan yang mengandungi semua padanan. Oleh itu, jika "a" ditemui, keluarkan "Dijumpai" sebaliknya, keluarkan "Tidak Ditemui".
Dalam artikel ini, kami memperkenalkan beberapa cara untuk menyemak sama ada aksara wujud dalam tatasusunan. Dalam pembangunan sebenar, anda mungkin perlu menggunakan kaedah yang berbeza, bergantung pada cara anda memproses data. Jika anda menghadapi masalah yang sama, sila rujuk kaedah yang disediakan dalam artikel ini untuk mencari penyelesaian yang sesuai dengan anda.
Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada aksara berada dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!