Rumah >pembangunan bahagian belakang >masalah PHP >php menukar nama kunci tatasusunan
PHP ialah bahasa pengaturcaraan sebelah pelayan yang biasa digunakan untuk mencipta halaman web dinamik. Dalam PHP, tatasusunan ialah struktur data yang sangat berguna yang digunakan untuk menyimpan satu set data berkaitan. Dalam pembangunan sebenar, kita selalunya perlu menukar nama utama tatasusunan untuk mencapai kesan pemprosesan data yang lebih baik.
Secara amnya, nama kunci tatasusunan PHP ialah rentetan yang terdiri daripada nombor dan huruf secara lalai. Jika nama kunci tatasusunan tidak sesuai, ia boleh menjejaskan penggunaan tatasusunan kami. Sebagai contoh, apabila kita perlu mengisih tatasusunan dalam susunan tertentu, nama kunci yang tidak sesuai boleh menyebabkan masalah dengan hasil yang diisih.
PHP menyediakan pelbagai kaedah untuk menukar nama utama tatasusunan Artikel ini akan memperkenalkan beberapa kaedah yang lebih biasa digunakan.
Kaedah 1. Gunakan fungsi array_combine()
Fungsi array_combine() digunakan untuk menggunakan nilai satu tatasusunan sebagai nama kunci tatasusunan baharu dan nilai yang lain tatasusunan sebagai nilai elemen tatasusunan baharu. Kita boleh menggunakan fungsi ini untuk menukar nama kunci tatasusunan.
Berikut ialah contoh yang menunjukkan cara menggunakan fungsi array_combine() untuk mengubah suai nama kunci tatasusunan:
$old_array = array( 'a' => 'apple', 'b' => 'banana', 'c' => 'cherry' ); $new_keys = array( 'apple', 'banana', 'cherry' ); $new_array = array_combine($new_keys, array_values($old_array)); print_r($new_array);
Dalam contoh ini, kita mula-mula mentakrifkan tatasusunan $old_array, di mana nama kunci masing-masing ialah a, b, dan c, dan nilai elemen masing-masing adalah epal, pisang, dan ceri. Kemudian, kami mentakrifkan tatasusunan $new_keys, yang mengandungi nama kunci baharu. Akhir sekali, kami menggunakan fungsi array_combine() untuk menggunakan elemen dalam tatasusunan $new_keys sebagai nama utama tatasusunan baharu, elemen dalam tatasusunan $old_array sebagai nilai elemen tatasusunan baharu, dan simpan hasilnya ke tatasusunan $new_array.
Jalankan kod di atas, hasil output adalah seperti berikut:
Array ( [apple] => apple [banana] => banana [cherry] => cherry )
Anda boleh melihat bahawa nama kunci tatasusunan $new_array telah berjaya diubah suai kepada elemen dalam tatasusunan $new_keys.
Perlu diambil perhatian bahawa apabila menggunakan fungsi array_combine() untuk menukar nama kunci tatasusunan, anda perlu memastikan bahawa bilangan elemen dalam tatasusunan $new_keys adalah sama dengan bilangan elemen dalam $ tatasusunan_lama. Jika tidak, mesej ralat "Dua tatasusunan mesti mempunyai panjang yang sama" akan dilemparkan.
Kaedah 2. Gunakan fungsi array_flip()
Fungsi array_flip() digunakan untuk menukar kunci dan nilai tatasusunan. Kita boleh menggunakan fungsi ini untuk menukar nama kunci tatasusunan.
Berikut ialah contoh yang menunjukkan cara menggunakan fungsi array_flip() untuk mengubah suai nama kunci tatasusunan:
$old_array = array( 'a' => 'apple', 'b' => 'banana', 'c' => 'cherry' ); $new_keys = array( 'apple', 'banana', 'cherry' ); $new_array = array_flip($old_array); foreach ($new_array as &$value) { $value = $new_keys[$value]; } $new_array = array_flip($new_array); print_r($new_array);
Dalam contoh ini, kita mula-mula mentakrifkan tatasusunan $old_array, di mana nama kunci masing-masing ialah a, b, dan c, dan nilai elemen masing-masing adalah epal, pisang, dan ceri. Kemudian, kami mentakrifkan tatasusunan $new_keys, yang mengandungi nama kunci baharu. Seterusnya, kami menggunakan fungsi array_flip() untuk menukar kunci dan nilai dalam tatasusunan $old_array. Kemudian gunakan gelung foreach untuk menggantikan nilai dalam tatasusunan yang ditukar dengan nilai elemen dalam tatasusunan $new_keys. Akhir sekali, gunakan fungsi array_flip() untuk menukar kunci dan nilai tatasusunan yang ditukar sekali lagi untuk mendapatkan tatasusunan baharu yang diperlukan.
Jalankan kod di atas, hasil output adalah seperti berikut:
Array ( [apple] => apple [banana] => banana [cherry] => cherry )
Anda boleh melihat bahawa nama kunci tatasusunan $new_array telah berjaya diubah suai kepada elemen dalam tatasusunan $new_keys.
Perlu diambil perhatian bahawa apabila menggunakan fungsi array_flip() untuk menukar kunci dan nilai tatasusunan, anda perlu memastikan bahawa nilai dalam tatasusunan $array adalah unik. Jika tidak, keputusan akan menjadi tidak tepat kerana konflik nilai utama.
Kaedah 3. Gunakan fungsi array_map()
Fungsi array_map() digunakan untuk menggunakan fungsi pada elemen dalam satu atau lebih tatasusunan dan mengembalikan tatasusunan yang diproses. Kita boleh menggunakan fungsi ini untuk menukar nama kunci tatasusunan.
Berikut ialah contoh yang menunjukkan cara menggunakan fungsi array_map() untuk mengubah suai nama kunci tatasusunan:
$old_array = array( 'a' => 'apple', 'b' => 'banana', 'c' => 'cherry' ); $new_keys = array( 'apple', 'banana', 'cherry' ); $new_array = array_map(function ($value) use ($old_array, $new_keys) { $new_key = array_search($value, $old_array); $new_key = $new_keys[$new_key]; return array($new_key => $value); }, $old_array); $new_array = array_reduce($new_array, 'array_merge', array()); print_r($new_array);
Dalam contoh ini, kita mula-mula mentakrifkan tatasusunan $old_array, di mana nama kunci masing-masing ialah a, b, dan c, dan nilai elemen masing-masing adalah epal, pisang, dan ceri. Kemudian, kami mentakrifkan tatasusunan $new_keys, yang mengandungi nama kunci baharu. Seterusnya, kami menggunakan fungsi array_map() untuk menggunakan fungsi tanpa nama pada setiap elemen dalam tatasusunan $old_array. Fungsi fungsi tanpa nama adalah untuk menggantikan nama kunci elemen dengan nilai elemen yang sepadan dalam tatasusunan $new_keys dan menyimpan hasilnya dalam tatasusunan baharu. Akhir sekali, kami menggunakan fungsi array_reduce() untuk menggabungkan semua tatasusunan baharu yang dijana menjadi tatasusunan baharu.
Jalankan kod di atas, hasil output adalah seperti berikut:
Array ( [apple] => apple [banana] => banana [cherry] => cherry )
Anda boleh melihat bahawa nama kunci tatasusunan $new_array telah berjaya diubah suai kepada elemen dalam tatasusunan $new_keys.
Perlu diambil perhatian bahawa apabila menggunakan fungsi array_map() untuk mengubah suai nama kunci tatasusunan, kita perlu menggabungkan tatasusunan dua kali, yang mungkin menjejaskan prestasi. Oleh itu, adalah disyorkan untuk menggunakan kaedah ini hanya apabila bekerja dengan tatasusunan kecil.
Ringkasan
Artikel ini memperkenalkan tiga kaedah biasa untuk menukar nama utama tatasusunan PHP, termasuk menggunakan fungsi array_combine(), array_flip() dan fungsi array_map(). Setiap kaedah mempunyai kelebihan dan kekurangannya sendiri, dan anda perlu memilih mengikut situasi tertentu apabila menggunakannya. Perlu diingatkan bahawa apabila mengubah suai nama kunci tatasusunan, kita harus mempertimbangkan sama ada elemen dalam tatasusunan adalah unik dan sama ada nama kunci baharu itu sesuai untuk mengelak daripada menjejaskan penggunaan tatasusunan.
Atas ialah kandungan terperinci php menukar nama kunci tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!