PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, dan pelbagai ciri baharu yang ditambah dalam versi terbaharunya, PHP8, telah menarik banyak perhatian daripada pembangun. Salah satu ciri penting ialah penambahbaikan fungsi tatasusunan, yang mana fungsi array_search() adalah salah satu yang paling penting. Dalam artikel ini, kami akan memperkenalkan pelbagai aplikasi praktikal fungsi array_search() supaya semua orang boleh menguasai fungsi praktikal ini dengan lebih baik.
1. Apakah fungsi array_search()?
Sebelum memahami pelbagai aplikasi fungsi array_search(), kita perlu terlebih dahulu memahami apakah fungsi ini dan untuk kegunaannya. Ringkasnya, fungsi array_search() digunakan untuk mencari kedudukan indeks elemen yang ditentukan dalam tatasusunan Jika ia ditemui, ia mengembalikan kunci elemen dalam tatasusunan, jika tidak ia mengembalikan palsu.
Fungsi ini mempunyai sintaks asas berikut:
array_search($search, $array, $strict)
Antaranya, $search ialah elemen untuk ditemui, $array ialah array untuk ditemui, $strict ialah parameter pilihan, digunakan untuk mengawal sama ada Lakukan "mod ketat" (iaitu jenis parameter mesti sepadan dengan tepat). Terdapat dua hasil yang dikembalikan oleh fungsi: jika carian berjaya, kunci elemen dalam tatasusunan dikembalikan, jika tidak palsu dikembalikan.
Seterusnya, kami akan memperkenalkan pelbagai senario aplikasi praktikal supaya semua orang dapat memahami fungsi array_search() dengan lebih baik.
2. Padamkan elemen yang ditentukan daripada tatasusunan
Kadangkala, kita perlu memadamkan elemen yang ditentukan daripada tatasusunan. Dalam kes ini, kita boleh menggunakan fungsi array_search() untuk mencari kedudukan indeks elemen yang akan dialih keluar dan kemudian gunakan fungsi array_splice() untuk mengeluarkannya daripada array.
Kod sampel adalah seperti berikut:
$arr = array('a', 'b', 'c', 'd', 'e'); $search = 'c'; $key = array_search($search, $arr); if ($key !== false) { // 判断是否查找到了指定元素 array_splice($arr, $key, 1); } print_r($arr);
Selepas melaksanakan kod di atas, hasil output adalah seperti berikut:
Array ( [0] => a [1] => b [2] => d [3] => e )
Seperti yang anda lihat, elemen 'c' dalam tatasusunan telah dipadamkan. Kaedah ini sesuai untuk situasi di mana anda perlu "memadamkan dengan cepat" elemen tatasusunan, kerana ia beroperasi terus di dalam tatasusunan dan tidak memerlukan menyalin keseluruhan tatasusunan.
3 Periksa sama ada tatasusunan mengandungi elemen yang ditentukan
Semasa proses pembangunan, kadangkala kita perlu menyemak sama ada tatasusunan mengandungi elemen yang ditentukan. Fungsi array_search() boleh membantu kami menyelesaikan tugas ini. Berikut ialah contoh:
$arr = array('apple', 'banana', 'pear', 'grape'); $search = 'apple'; $key = array_search($search, $arr); if ($key !== false) { echo 'The fruit "' . $search . '" exists in the array.' . '<br>'; } else { echo 'The fruit "' . $search . '" does not exist in the array.' . '<br>'; }
Di sini, kita mula-mula menentukan tatasusunan yang mengandungi nama empat buah. Kemudian, kami mentakrifkan pembolehubah $search dan menggunakan fungsi array_search() untuk mencari elemen dalam tatasusunan. Akhir sekali, kami menggunakan penyataan if untuk menyemak nilai pembolehubah $search, jika ia tidak palsu, ini bermakna elemen itu hadir dalam tatasusunan.
4 Cari item yang sepadan dalam tatasusunan dua dimensi
Fungsi array_search() sangat berguna apabila mencari tatasusunan satu dimensi, tetapi ia lebih rumit sedikit apabila mencari dua tatasusunan -dimensi. Dalam kes ini, kita boleh menggunakan gelung foreach untuk mencari setiap elemen tatasusunan, dan kemudian gunakan fungsi array_search() untuk mencari elemen yang ditentukan.
Berikut ialah kod sampel yang melibatkan tatasusunan dua dimensi:
$array = array( array('name' => 'Alice', 'age' => 22), array('name' => 'Bob', 'age' => 23), array('name' => 'Charlie', 'age' => 24) ); $search = 'Bob'; foreach ($array as $key => $value) { if (array_search($search, $value)) { echo 'The person named ' . $search . ' exists in the array.' . '<br>'; } else { echo 'The person named ' . $search . ' does not exist in the array.' . '<br>'; } }
Di sini, kami mentakrifkan tatasusunan dua dimensi yang mengandungi nama tiga orang ('Alice', 'Bob' dan 'Charlie') dan umur mereka. Kami kemudian menggunakan gelung foreach untuk mencari setiap elemen dalam tatasusunan. Dalam gelung, kami menggunakan fungsi array_search() untuk mencari nama orang yang ditentukan dan jika padanan ditemui, keluarkan mesej pada halaman web, jika tidak, keluarkan mesej lain.
5 Cari item yang sepadan dalam berbilang tatasusunan
Jika kami perlu mencari item yang sepadan dalam berbilang tatasusunan, fungsi array_search() juga boleh membantu kami menyelesaikan tugasan ini. Berikut ialah contoh:
$array1 = array('a', 'b', 'c'); $array2 = array('d', 'e', 'f'); $array3 = array('g', 'h', 'i'); $search = 'c'; $found = false; foreach (array($array1, $array2, $array3) as $array) { if (array_search($search, $array)) { $found = true; break; } } if ($found) { echo 'The element "' . $search . '" exists in one of the arrays.' . '<br>'; } else { echo 'The element "' . $search . '" does not exist in any of the arrays.' . '<br>'; }
Di sini, kami mentakrifkan tiga tatasusunan $array1, $array2 dan $array3 dan mentakrifkan pembolehubah $search. Kemudian, kami menggunakan gelung foreach untuk lelaran melalui semua tatasusunan, menggunakan fungsi array_search() untuk mencari elemen yang ditentukan dalam setiap tatasusunan. Jika padanan ditemui, kami menetapkan pembolehubah $found kepada benar dan kemudian menggunakan pernyataan break untuk keluar dari gelung. Akhir sekali, kami menggunakan pernyataan if untuk menyemak nilai pembolehubah $found untuk menentukan sama ada elemen yang ditentukan ditemui dalam mana-mana tatasusunan.
6. Cari laluan dalam tatasusunan berbilang dimensi
Dalam sesetengah kes, kita perlu mencari laluan tertentu dalam tatasusunan berbilang dimensi dan mengembalikan elemen dalam laluan. Berikut ialah kes penggunaan:
$array = array( 'a' => array('b' => array('c' => 'd')) ); $search = 'c'; function search_path($array, $search, &$path = array()) { foreach ($array as $key => $value) { if (is_array($value)) { $path[] = $key; if (search_path($value, $search, $path)) { return true; } array_pop($path); } else { if ($key === $search) { $path[] = $key; return true; } } } return false; } $path = array(); if (search_path($array, $search, $path)) { echo 'The path to "' . $search . '" is: ' . implode(' > ', $path) . '<br>'; } else { echo 'Could not find the path to "' . $search . '".' . '<br>'; }
Dalam contoh ini, kami mentakrifkan tatasusunan berbilang dimensi yang mengandungi nilai skalar 'd', disimpan di laluan 'a/b/c'. Kami kemudian menggunakan fungsi tersuai search_path() untuk mencari laluan dan mengembalikan elemen pada laluan. Fungsi ini menggunakan rekursi untuk melintasi tatasusunan berbilang dimensi dan mencari elemen dalam laluan yang ditentukan. Jika ditemui, simpan laluan dalam tatasusunan $paths dan kembalikan benar. Jika tidak dijumpai, fungsi mengembalikan palsu.
Selepas melaksanakan fungsi search_path(), kami lulus tatasusunan $path sebagai parameter dan boleh menggunakan fungsi implode() untuk memaparkan laluan pada halaman web.
Kesimpulan
Dalam artikel ini, kami memperkenalkan pelbagai kaedah aplikasi praktikal fungsi array_search(). Fungsi ini bukan sahaja boleh mencari elemen dalam tatasusunan satu dimensi, tetapi juga mencari laluan dalam tatasusunan berbilang dimensi. Menguasai fungsi ini boleh menjadikan kami mengendalikan tatasusunan dan data dengan lebih mudah dan cekap semasa proses pembangunan.
Atas ialah kandungan terperinci Fungsi tatasusunan dalam PHP8: pelbagai aplikasi praktikal array_search(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!