Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mencari Nilai Secara Berkesan dalam Tatasusunan Berbilang Dimensi dalam PHP?

Bagaimanakah Saya Boleh Mencari Nilai Secara Berkesan dalam Tatasusunan Berbilang Dimensi dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 16:52:10863semak imbas

How Can I Effectively Search for a Value in a Multidimensional Array in PHP?

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>
<pre class="brush:php;toolbar:false">foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) &amp;&amp; in_array_r($needle, $item, $strict))) {
        return true;
    }
}

return false;

}

Penggunaan

Fungsi in_array_r() digunakan seperti berikut:

$b = array(array("Mac", "NT"), array("Irix", "Linux"));
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!

Kenyataan:
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