Rumah >pembangunan bahagian belakang >masalah PHP >php tatasusunan yang sama menggantikan nilai kunci
Dalam pembangunan, kita selalunya perlu mengendalikan tatasusunan Salah satu keperluan biasa ialah menggantikan nama kunci dalam tatasusunan, seperti menggantikan nama kunci daripada "user_id" kepada "id". Dalam PHP, kita boleh menggunakan array_combine dan array_values fungsi tatasusunan untuk penggantian, tetapi fungsi ini mempunyai beberapa batasan, jadi kita perlu menggunakan beberapa cara lain untuk menggantikan nilai utama dengan tatasusunan yang sama.
1. Gunakan fungsi array_map
Fungsi array_map dalam PHP boleh digunakan untuk menggunakan fungsi panggil balik pada setiap kunci atau nilai dalam tatasusunan. Kita boleh menggunakan fungsi ini untuk menggunakan fungsi panggil balik pada setiap elemen tatasusunan untuk menggantikan nama kunci.
Kod contoh:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = array_map(function($key) { if($key == 'user_id') { return 'id'; } return $key; }, array_keys($arr)); $arr = array_combine($new_arr, array_values($arr));
Dalam kod di atas, kami menggunakan fungsi peta_tatasusunan untuk menggunakan fungsi panggil balik pada setiap nama kunci dalam tatasusunan Jika nama kunci ialah "user_id", kemudian Ganti ia dengan "id", jika tidak, kembalikan nama kunci asal. Kemudian kami menggunakan fungsi array_combine untuk menggabungkan semula nama kunci baharu dan nilai asal ke dalam tatasusunan baharu.
2. Gunakan gelung foreach
Cara lain untuk menggantikan nama kunci dalam tatasusunan yang sama ialah menggunakan gelung foreach dalam PHP untuk melintasi tatasusunan. Kita boleh menyalin setiap elemen dalam tatasusunan asal kepada tatasusunan baharu, tetapi mengubah suai nama utama tatasusunan asal semasa menyalin.
Kod sampel:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = []; foreach($arr as $key => $value) { if($key == 'user_id') { $key = 'id'; } $new_arr[$key] = $value; } $arr = $new_arr;
Dalam kod di atas, kami menggunakan tatasusunan baharu $new_arr untuk menyalin setiap elemen dalam tatasusunan asal ke tatasusunan baharu. Semasa menyalin, jika nama kunci tatasusunan asal ialah "user_id", gantikannya dengan "id".
3. Gunakan fungsi array_reduce
Fungsi array_reduce boleh digunakan untuk melakukan pengiraan pengurangan pada semua elemen dalam tatasusunan, dan juga boleh digunakan untuk menggantikan nama kunci dalam tatasusunan.
Kod contoh:
$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20]; $new_arr = array_reduce(array_keys($arr), function($result, $key) use ($arr) { if($key == 'user_id') { $key = 'id'; } $result[$key] = $arr[$key]; return $result; }, []); $arr = $new_arr;
Dalam kod di atas, kami menghantar nama kunci tatasusunan ke dalam fungsi array_reduce dan mentakrifkan fungsi tanpa nama untuk menggantikan nama kunci. Dalam fungsi, kami mula-mula menentukan sama ada nama kunci ialah "id_pengguna", jika ya, gantikannya dengan "id", jika tidak gunakan nama kunci asal. Kemudian tambahkan pasangan nilai kunci baharu pada tatasusunan nilai pulangan, dan akhirnya gunakan tatasusunan yang dikembalikan untuk menggantikan tatasusunan asal.
Ringkasan
Dalam PHP, terdapat banyak cara untuk menggantikan nama kunci dengan tatasusunan yang sama, termasuk menggunakan fungsi seperti array_map, foreach dan array_reduce. Fungsi yang berbeza digunakan dalam cara yang berbeza, dan anda perlu memilih mengikut keperluan dan senario tertentu. Dalam pembangunan sebenar, kita perlu menggunakan kaedah ini secara fleksibel untuk meningkatkan kecekapan operasi tatasusunan dan kebolehbacaan kod.
Atas ialah kandungan terperinci php tatasusunan yang sama menggantikan nilai kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!