Rumah >pembangunan bahagian belakang >masalah PHP >php tatasusunan yang sama menggantikan nilai kunci

php tatasusunan yang sama menggantikan nilai kunci

WBOY
WBOYasal
2023-05-19 10:36:38551semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn