Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada rentetan wujud dalam tatasusunan dalam php
Apabila menggunakan tatasusunan dalam PHP, adalah keperluan biasa untuk menyemak sama ada unsur wujud dalam tatasusunan. Apabila elemen dalam tatasusunan ialah nombor integer atau titik terapung, anda boleh menggunakan fungsi in_array() untuk menyemak sama ada elemen itu terkandung dalam tatasusunan. Walau bagaimanapun, apabila ia datang untuk menyemak sama ada tatasusunan mengandungi rentetan, fungsi itu tidak berfungsi dengan betul.
Jadi, bagaimanakah kita harus menyemak sama ada tatasusunan PHP mengandungi rentetan?
Kaedah 1: Gunakan fungsi in_array() untuk menentukan
$fruits = array("apple", "banana", "orange"); if (in_array("apple", $fruits)) { echo "苹果在数组中"; } else { echo "苹果不在数组中"; }
Dalam kod di atas, parameter pertama fungsi in_array() ialah elemen yang akan ditemui, dan yang kedua parameter adalah untuk mencari tatasusunan. Fungsi mengembalikan benar jika elemen yang ditemui berada dalam tatasusunan jika tidak ia mengembalikan palsu.
Walau bagaimanapun, jika anda mencari rentetan, fungsi in_array() akan membandingkan rentetan sebagai keseluruhan elemen dan bukannya membandingkan bahagian tertentu rentetan. Ini bermakna fungsi in_array() masih akan kembali palsu jika tatasusunan mengandungi elemen yang merupakan sebahagian daripada rentetan yang anda cari. Oleh itu, fungsi in_array() tidak boleh menyemak dengan tepat sama ada tatasusunan PHP mengandungi rentetan.
Kaedah 2: Gunakan fungsi array_search() untuk menentukan
$fruits = array("apple", "banana", "orange"); $key = array_search("apple", $fruits); if ($key !== false) { echo "苹果在数组中,键名为:" . $key; } else { echo "苹果不在数组中"; }
Fungsi array_search() adalah serupa dengan fungsi in_array() dan digunakan untuk mencari nilai yang ditentukan dalam array . Perbezaannya ialah fungsi array_search() mengembalikan nama kunci elemen dalam tatasusunan dan bukannya benar/salah. Mengembalikan palsu jika elemen yang ditemui tiada dalam tatasusunan.
Apabila menggunakan fungsi array_search(), sila ambil perhatian bahawa fungsi ini ketat dan sensitif huruf. Iaitu, jika anda mencari rentetan huruf kecil dalam tatasusunan dengan rentetan semuanya huruf besar, fungsi array_search() akan mengembalikan palsu walaupun sama.
Kaedah 3: Gunakan fungsi in_array() dan array_map() bersama-sama untuk menentukan
function array_value_exists($needle, $haystack) { return in_array($needle, array_map('strtolower', $haystack)); }
Kaedah ini menggunakan fungsi in_array() dan array_map() bersama-sama, ia akan Menukar rentetan kepada huruf kecil dan mencari tatasusunan yang ditukar untuk rentetan yang ditentukan. Jadi sama ada rentetan itu huruf besar atau kecil, ia boleh didapati dalam tatasusunan.
Kesimpulan
Dalam PHP, apabila menggunakan tatasusunan, anda perlu memilih kaedah yang berbeza untuk menyemak sama ada tatasusunan mengandungi rentetan mengikut situasi sebenar. Jika rentetan yang perlu dipadankan dimasukkan oleh pengguna, anda harus mempertimbangkan sama ada anda perlu menggunakan kaedah ketiga untuk mengelakkan masalah yang disebabkan oleh penggunaan huruf besar.
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!