Fungsi in_array() ialah alat yang mudah untuk menyemak sama ada nilai wujud dalam tatasusunan. Walau bagaimanapun, kegunaannya hanya meluas kepada tatasusunan satu dimensi. Apabila berurusan dengan tatasusunan berbilang dimensi, pendekatan yang berbeza diperlukan.
Untuk menentukan sama ada nilai wujud dalam tatasusunan berbilang dimensi, fungsi rekursif boleh digunakan. Berikut ialah contoh fungsi sedemikian:
def in_array_r(needle, haystack, strict = False): for item in haystack: if ((strict ? item === needle : item == needle) or (is_array(item) && in_array_r(needle, item, strict))) { return True } return False
Fungsi ini mengambil tiga argumen: jarum untuk dicari, timbunan jerami untuk mencari di dalam dan bendera ketat pilihan yang menentukan sama ada untuk membandingkan nilai secara ketat (iaitu, jenis dan nilai).
Untuk menggunakan fungsi rekursif, hanya panggilnya dengan jarum dan timbunan jerami yang dikehendaki:
$b = array(array("Mac", "NT"), array("Irix", "Linux")); echo in_array_r("Irix", $b) ? 'found' : 'not found';
Ini akan mengeluarkan 'ditemui', menunjukkan bahawa "Irix" wujud dalam tatasusunan berbilang dimensi $b.
Sementara fungsi rekursif ialah penyelesaian serba boleh, terdapat cara lain untuk menyemak nilai dalam pelbagai dimensi tatasusunan:
Akhirnya, pendekatan terbaik bergantung pada keperluan khusus aplikasi. Jika kelajuan menjadi kebimbangan, fungsi rekursif mungkin merupakan pilihan yang sesuai. Jika tidak, kaedah alternatif boleh memberikan penyelesaian yang lebih mudah atau lebih mantap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Nilai Dengan Cekap dalam Tatasusunan Berbilang Dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!