Dalam pengaturcaraan PHP, tatasusunan ialah jenis data yang sangat biasa dan tatasusunan selalunya perlu dikendalikan. Walau bagaimanapun, kadangkala kita perlu mengecualikan kunci tertentu daripada tatasusunan sambil mengekalkan yang lain. Artikel ini akan menerangkan cara mengecualikan kunci tatasusunan menggunakan PHP.
1. Gunakan fungsi yang tidak ditetapkan
Fungsi yang tidak ditetapkan boleh memadamkan pasangan nilai kunci Jika kunci dihantar sebagai parameter kepada fungsi yang tidak ditetapkan, kunci akan dipadamkan.
Berikut ialah contoh menggunakan fungsi tidak ditetapkan untuk mengecualikan kunci tatasusunan:
$my_array = array( 'foo' => 'bar', 'john' => 'doe', 'mary' => 'jane' ); unset($my_array['foo']); print_r($my_array); // Array ( [john] => doe [mary] => jane )
Dalam contoh di atas, kekunci 'foo' dalam tatasusunan $my_array dipadamkan melalui fungsi tidak ditetapkan, kita Anda boleh melihat bahawa tiada nilai untuk kekunci 'foo' dalam tatasusunan bercetak.
Oleh itu, kita boleh menggunakan fungsi unset untuk memadamnya satu demi satu dengan menggelung semua kekunci untuk dikecualikan dalam tatasusunan.
Berikut ialah contoh menggunakan fungsi tidak ditetapkan untuk mengecualikan berbilang kunci tatasusunan:
$my_array = array( 'foo' => 'bar', 'john' => 'doe', 'mary' => 'jane', 'jane' => 'smith' ); $exclude_keys = array('foo', 'mary'); foreach ($exclude_keys as $key) { unset($my_array[$key]); } print_r($my_array); // Array ( [john] => doe [jane] => smith )
Dalam contoh di atas, gelung foreach digunakan untuk melintasi tatasusunan kunci $exclude_keys to be dikecualikan, dan kemudian melalui Fungsi yang tidak ditetapkan membuangnya daripada tatasusunan secara bergilir-gilir.
2. Gunakan fungsi array_diff_key
PHP menyediakan fungsi array_diff_key yang sangat mudah, yang boleh digunakan untuk membandingkan kekunci dua tatasusunan dan mengembalikan perbezaannya.
Berikut ialah contoh menggunakan fungsi array_diff_key untuk mengecualikan berbilang kunci tatasusunan:
$my_array = array( 'foo' => 'bar', 'john' => 'doe', 'mary' => 'jane', 'jane' => 'smith' ); $exclude_keys = array('foo', 'mary'); $filtered_array = array_diff_key($my_array, array_combine($exclude_keys, array_fill(0, count($exclude_keys), null))); print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
Dalam contoh di atas, fungsi array_combine dan array_fill digunakan untuk menjana nilai yang sama panjang itu semua nol, dan kemudian gunakan fungsi array_diff_key untuk mengembalikan perbezaan antara $my_array dan tatasusunan yang kuncinya kosong, iaitu, semua kunci dalam tatasusunan $exclude_keys dikecualikan.
3. Gunakan fungsi array_filter
Dalam PHP, gunakan fungsi array_filter untuk menapis tatasusunan dan mengembalikan elemen tatasusunan yang sepadan. Memandangkan ia menyediakan fungsi panggil balik, kita boleh menulis fungsi panggil balik untuk menentukan sama ada kunci tertentu perlu dikecualikan.
Berikut ialah contoh menggunakan fungsi array_filter untuk mengecualikan berbilang kunci tatasusunan:
$my_array = array( 'foo' => 'bar', 'john' => 'doe', 'mary' => 'jane', 'jane' => 'smith' ); $exclude_keys = array('foo', 'mary'); $filtered_array = array_filter($my_array, function($key) use ($exclude_keys) { return !in_array($key, $exclude_keys); }, ARRAY_FILTER_USE_KEY); print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
Dalam contoh di atas, kami mentakrifkan fungsi tanpa nama dan menggunakan kata kunci penggunaan untuk $exclude_keys pas tatasusunan ia. Fungsi fungsi tanpa nama ini ialah jika kunci tatasusunan wujud dalam tatasusunan $exclude_keys, ia mengembalikan palsu, menunjukkan bahawa ia perlu ditapis keluar. Akhir sekali, kami menyerahkan fungsi tanpa nama ini sebagai fungsi panggil balik kepada fungsi array_filter. Apabila menggunakan fungsi array_filter, kami menentukan parameter ketiga sebagai ARRAY_FILTER_USE_KEY, menunjukkan bahawa kami ingin menggunakan fungsi panggil balik untuk menapis kekunci tatasusunan.
4. Gunakan fungsi array_keys dan array_diff
Akhir sekali, kita juga boleh menggunakan array_keys dan fungsi array_diff untuk mengecualikan kekunci tatasusunan. Kaedah khusus ialah menggunakan fungsi array_keys terlebih dahulu untuk mendapatkan semua kekunci tatasusunan, kemudian gunakan fungsi array_diff untuk mendapatkan kunci yang perlu dikekalkan, dan gunakan kekunci ini untuk membina tatasusunan baharu.
Berikut ialah contoh penggunaan array_keys dan array_diff fungsi untuk mengecualikan berbilang kunci tatasusunan:
$my_array = array( 'foo' => 'bar', 'john' => 'doe', 'mary' => 'jane', 'jane' => 'smith' ); $exclude_keys = array('foo', 'mary'); $filtered_keys = array_diff(array_keys($my_array), $exclude_keys); $filtered_array = array_intersect_key($my_array, array_combine($filtered_keys, $filtered_keys)); print_r($filtered_array); // Array ( [john] => doe [jane] => smith )
Dalam contoh di atas, mula-mula gunakan fungsi array_keys untuk mendapatkan semua kunci $ my_array, dan kemudian gunakan Fungsi array_diff menapis kekunci yang perlu dikekalkan. Kemudian gunakan fungsi array_combine untuk membentuk kunci yang ditapis menjadi tatasusunan dengan nilai kunci yang sama, dan akhirnya gunakan fungsi array_intersect_key untuk mengembalikan tatasusunan yang ditapis.
Ringkasan
PHP menyediakan berbilang kaedah untuk mengecualikan kunci tatasusunan dan kita boleh memilih untuk menggunakan kaedah yang berbeza untuk menangani situasi sebenar yang berbeza. Secara khusus, kita boleh menggunakan fungsi unset, fungsi array_diff_key, fungsi array_filter, array_keys dan fungsi array_diff untuk menyelesaikan operasi ini. Adalah penting untuk ambil perhatian bahawa apabila menggunakan kaedah ini, kita perlu mengendalikan kekunci tatasusunan dengan berhati-hati untuk mengelakkan pemadaman atau mengekalkan kunci yang tidak diperlukan secara tidak sengaja.
Atas ialah kandungan terperinci Bagaimana untuk mengecualikan kunci tatasusunan menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!