Carian Tatasusunan Berbilang Dimensi dengan in_array()
Fungsi in_array() cemerlang dalam mengesahkan kewujudan nilai dalam tatasusunan linear. Walau bagaimanapun, kefungsiannya kurang apabila melibatkan tatasusunan berbilang dimensi. Artikel ini menyelidiki batasan in_array() dalam senario multidimensi dan memperkenalkan penyelesaian rekursif.
Penghadan in_array() dengan Tatasusunan Berbilang Dimensi
$ a = array("Mac", "NT", "Irix", "Linux");<br>if (in_array("Irix", $a)) echo "Got Irix"; // Berfungsi<br>
Sebaliknya, menggunakan in_array() pada tatasusunan berbilang dimensi, seperti yang ditunjukkan di bawah, akan menghasilkan hasil yang tidak tepat:
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "Got Irix"; // Gagal<br>
Penyelesaian Rekursif untuk Carian Tatasusunan Berbilang Dimensi
Untuk mencari nilai secara berkesan dalam tatasusunan berbilang dimensi, pendekatan rekursif ialah diperlukan. Coretan kod berikut mentakrifkan fungsi tersuai untuk tujuan ini:
<br>fungsi in_array_r($needle, $hystack, $strict = false) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) { return true; } } return false;
}
Penggunaan
Fungsi in_array_r() digunakan seperti berikut:
echo in_array_r("Irix", $b) ? 'found' : 'not found';
Penyelesaian ini membolehkan operasi carian yang cekap dan tepat untuk nilai dalam tatasusunan berbilang dimensi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Nilai Secara Berkesan dalam Tatasusunan Berbilang Dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!