PHP ialah bahasa pengaturcaraan sebelah pelayan yang biasa digunakan yang membolehkan pembangun memproses dan mengendalikan pelbagai jenis data dengan mudah Salah satu jenis data yang paling biasa digunakan ialah tatasusunan. Dalam PHP, mencari tatasusunan adalah operasi yang sangat asas dan biasa. Seterusnya, mari kita terokai cara mencari tatasusunan dalam PHP.
1. Pengenalan kepada carian tatasusunan dalam PHP
Dalam PHP, tatasusunan merujuk kepada satu set elemen tersusun, yang boleh disimpan dalam pasangan nilai kunci, di mana setiap elemen Terdapat berkaitan kunci dan nilai yang sepadan. Apabila anda perlu mencari elemen tatasusunan ini, anda perlu menggunakan carian tatasusunan.
Carian tatasusunan merujuk kepada mencari nilai atau kunci tertentu dalam tatasusunan sedia ada untuk menentukan sama ada nilai atau kunci sasaran wujud atau tidak wujud dalam tatasusunan. PHP menyediakan banyak kaedah carian tatasusunan, termasuk carian linear, carian binari, carian rekursif, dll.
2. Carian linear tatasusunan dalam PHP
Kaedah carian paling mudah dalam PHP ialah carian linear, iaitu kaedah mencari kunci sasaran atau nilai dengan merentasi keseluruhan tatasusunan. Idea asas carian linear adalah untuk membandingkan nilai sasaran dan kunci satu demi satu bermula dari elemen pertama tatasusunan Jika nilai sasaran atau kunci ditemui, indeks atau nilai yang sepadan dikembalikan jika sasaran tidak ditemui selepas merentasi keseluruhan tatasusunan, kembalikan "false" bermakna carian gagal.
Berikut ialah contoh pelaksanaan kod:
$arr = array("apple", "orange", "banana", "grape"); $target = "banana"; for($i=0;$i<count($arr);$i++){ if($arr[$i] == $target){ echo "目标值 " . $target . " 在数组中的索引是 " . $i; break; } }
Dalam kod di atas, kami mentakrifkan tatasusunan $arr, dan kemudian menggunakan gelung untuk melelaran melalui setiap elemen dalam tatasusunan. Apabila nilai sasaran ditemui, gunakan pernyataan "gema" untuk mengeluarkan indeks nilai sasaran dalam tatasusunan, dan kemudian gunakan pernyataan "break" untuk menamatkan gelung.
3. Carian binari tatasusunan dalam PHP
Dalam PHP, jika tatasusunan itu dipesan, anda boleh menggunakan carian binari untuk carian yang lebih pantas. Carian binari ialah algoritma carian berasaskan perbandingan dan aplikasi tipikal pemikiran divide-and-conquer.
Idea asas carian binari ialah: bahagikan tatasusunan tertib kepada dua bahagian, cari nilai di tengah tatasusunan, dan bandingkan sasaran dengan nilai ini, jika sasaran lebih kecil daripada nilai ini , kemudian pada separuh pertama (sebelah kiri) Carian rekursif; jika sasaran lebih besar daripada nilai ini, cari secara rekursif pada separuh kedua (sebelah kanan jika sasaran sama dengan nilai ini, kembalikan indeks atau nilai yang sepadan);
Berikut ialah contoh pelaksanaan kod:
function binary_search($arr,$target){ $low = 0; $high = count($arr) - 1; while($low <= $high) { $middle = intval(($low + $high)/2); if($arr[$middle] == $target) { return $middle; } elseif ($arr[$middle] > $target) { $high = $middle -1; } else { $low = $middle + 1; } } return -1; } $arr = array(1,3,5,7,9,11); $target = 7; echo "目标值 " . $target . " 在数组中的索引是 " . binary_search($arr,$target);
Dalam kod di atas, kami mentakrifkan fungsi binary_search yang menerima tatasusunan tertib dan nilai sasaran sebagai parameter, dan Mengembalikan indeks nilai sasaran dalam tatasusunan. Gelung dan pernyataan bersyarat digunakan dalam fungsi untuk melaksanakan algoritma carian binari.
4. Carian rekursif tatasusunan dalam PHP
Carian rekursif ialah kaedah carian yang mudah tetapi agak tidak cekap dengan memanggil fungsinya sendiri secara rekursif dan mencari nilai atau kunci sasaran . Idea asas carian rekursif ialah: jika tatasusunan kosong, kembalikan "palsu" jika tidak, semak sama ada elemen tatasusunan pertama ialah nilai atau kunci sasaran, dan jika ya, kembalikan indeks atau nilai yang sepadan, panggil fungsinya sendiri secara rekursif untuk memproses elemen tatasusunan yang tinggal kecuali elemen pertama.
Berikut ialah contoh pelaksanaan kod:
function search($arr,$target) { if(empty($arr)){ return false; } if($arr[0] == $target){ return 0; } else { $index = search(array_slice($arr,1),$target); if($index === false) { return false; } else { return $index+1; } } } $arr = array("apple", "orange", "banana", "grape"); $target = "orange"; echo "目标值 " . $target . " 在数组中的索引是 " . search($arr,$target);
Dalam kod di atas, kami mentakrifkan carian fungsi yang menerima tatasusunan dan nilai sasaran sebagai parameter dan mengembalikan sasaran Indeks nilai dalam tatasusunan. Fungsi ini menggunakan panggilan rekursif ke fungsinya sendiri untuk melintasi keseluruhan tatasusunan dan mencari nilai atau kunci sasaran.
5. Ringkasan
Di atas adalah pengenalan kepada kaedah mencari tatasusunan dalam PHP. Kita boleh memilih algoritma carian yang sesuai mengikut keperluan yang berbeza: untuk tatasusunan tidak tersusun, kita boleh memilih carian linear atau carian rekursif untuk tatasusunan tersusun, kita boleh memilih carian binari untuk meningkatkan kecekapan carian; Dalam pembangunan sebenar, adalah sangat penting untuk memilih kaedah mengikut keadaan sebenar, dan kesan ke atas prestasi juga sangat besar.
Atas ialah kandungan terperinci Bagaimana untuk mencari array dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!