Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengetahui sama ada nilai tertentu wujud dalam tatasusunan dua dimensi dalam php
Tatasusunan dua dimensi PHP untuk mencari sama ada nilai tertentu wujud
Dalam PHP, tatasusunan ialah salah satu jenis data yang biasa digunakan dan tatasusunan dua dimensi ialah salah satu bentuk tatasusunan yang lebih biasa digunakan. Dalam pembangunan sebenar, kita sering perlu mencari sama ada nilai tertentu wujud dalam tatasusunan dua dimensi Artikel ini akan memperkenalkan beberapa kaedah pelaksanaan.
Pertama, kita boleh menggunakan gelung foreach untuk merentasi keseluruhan tatasusunan dua dimensi dan mengetahui sama ada nilai sasaran wujud satu demi satu. Kodnya adalah seperti berikut:
function search_array($array, $search_value) { foreach($array as $value) { if(in_array($search_value, $value)) { return true; } } return false; }
Dalam kod di atas, kami mentakrifkan fungsi bernama search_array, yang menerima dua parameter $array mewakili tatasusunan dua dimensi untuk dicari dan $search_value mewakili nilai untuk dicari.
Dalam badan fungsi, kita mula-mula menggunakan gelung foreach untuk melintasi tatasusunan dua dimensi, mengeluarkan elemen tatasusunan $value setiap kali, dan kemudian gunakan fungsi in_array untuk menyemak sama ada $search_value wujud dalam $value . Jika ia wujud, fungsi mengembalikan true , menunjukkan bahawa nilai sasaran telah ditemui jika tidak, gelung diteruskan sehingga traversal tatasusunan selesai.
Nota: Fungsi in_array() digunakan untuk mencari nilai tertentu dalam tatasusunan. Mengembalikan benar jika ditemui, palsu sebaliknya.
Selain menggunakan gelung foreach, kita juga boleh menggunakan fungsi array_walk untuk memproses setiap elemen tatasusunan dan menyemak sama ada nilai sasaran wujud. Kodnya adalah seperti berikut:
function search_array($array, $search_value) { $found = false; array_walk($array, function($value) use (&$found, $search_value){ if(in_array($search_value, $value)) { $found = true; } }); return $found; }
Dalam kod di atas, kami mula-mula mentakrifkan fungsi bernama search_array, yang menerima dua parameter: $array mewakili tatasusunan dua dimensi yang hendak dicari, $search_value mewakili nilai . Kami juga mentakrifkan pembolehubah $found, yang menunjukkan sama ada nilai sasaran ditemui dan dimulakan kepada palsu.
Kemudian, kami memanggil fungsi array_walk untuk melintasi tatasusunan $array Di sini kami menggunakan fungsi tanpa nama sebagai fungsi panggil balik Fungsi menerima parameter $value untuk mewakili elemen tatasusunan, dan menggunakan pernyataan penggunaan untuk lulus $found dan $search_value in. , gunakan fungsi in_array dalam badan fungsi untuk menyemak sama ada $search_value wujud dalam $value Jika wujud, tetapkan $found kepada benar, menunjukkan bahawa nilai sasaran ditemui. Akhir sekali, fungsi mengembalikan nilai $found, menunjukkan sama ada nilai sasaran ditemui.
Nota: Fungsi array_walk() menggunakan fungsi yang ditentukan pengguna untuk setiap elemen dalam tatasusunan. Mengembalikan TRUE jika berjaya, FALSE sebaliknya.
Akhir sekali, kita juga boleh menggunakan fungsi array_reduce untuk melintasi keseluruhan tatasusunan dua dimensi dan semak sama ada setiap elemen tatasusunan mengandungi nilai sasaran satu oleh seorang. Kod tersebut adalah seperti berikut:
function search_array($array, $search_value) { $found = array_reduce($array, function($carry, $value) use ($search_value){ return $carry || in_array($search_value, $value); }, false); return $found; }
Dalam kod di atas, kami mula-mula mentakrifkan fungsi bernama search_array, yang menerima dua parameter: $array mewakili tatasusunan dua dimensi yang hendak dicari dan $search_value mewakili nilai.
Kemudian, kami menggunakan fungsi array_reduce untuk melintasi keseluruhan tatasusunan dua dimensi, menggunakan fungsi tanpa nama sebagai fungsi panggil balik, di mana $carry mewakili nilai pulangan lelaran sebelumnya dan $value mewakili elemen tatasusunan pada masa ini diulang kepada. Fungsi in_array digunakan dalam badan fungsi untuk menyemak sama ada $search_value wujud dalam $value, $carry || true dikembalikan, menunjukkan bahawa nilai sasaran telah ditemui, $carry ||. menunjukkan bahawa nilai sasaran belum ditemui. Akhir sekali, fungsi mengembalikan nilai $found, menunjukkan sama ada nilai sasaran ditemui.
Nota: Fungsi array_reduce() menggunakan fungsi panggil balik untuk secara berulang mengurangkan tatasusunan kepada satu nilai.
Ringkasan
Artikel ini memperkenalkan tiga cara untuk melaksanakan tatasusunan dua dimensi PHP untuk mencari nilai tertentu Ia menggunakan gelung foreach, fungsi array_walk dan fungsi array_reduce untuk melintasi tatasusunan dua dimensi masing-masing. dan semak sama ada ia mengandungi nilai sasaran. Dalam pembangunan sebenar, kita harus memilih kaedah pelaksanaan yang sesuai berdasarkan situasi sebenar untuk meningkatkan kecekapan kod dan kelajuan pelaksanaan.
Atas ialah kandungan terperinci Bagaimana untuk mengetahui sama ada nilai tertentu wujud dalam tatasusunan dua dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!