Dalam pembangunan PHP, tatasusunan pengendalian adalah salah satu operasi yang sering ditemui. Apabila mengendalikan tatasusunan, kadangkala anda perlu mengubah suai nilai dalam tatasusunan. Jadi dalam PHP, bagaimana untuk mengubah suai nilai dalam tatasusunan? Yang berikut akan memperkenalkannya kepada anda secara terperinci.
1. Gunakan gelung for untuk melintasi tatasusunan untuk mengubah suai nilai
Kaedah paling asas ialah menggunakan gelung for untuk melintasi tatasusunan dan mengubah suai nilai yang perlu diubah suai. Pelaksanaan khusus adalah seperti berikut:
<?php $arr = [1, 2, 3, 4, 5]; for($i = 0; $i < count($arr); $i++) { if($arr[$i] == 2) { $arr[$i] = 20; } } print_r($arr); ?>
Dalam kod di atas, kami mentakrifkan tatasusunan $arr yang mengandungi 5 elemen, kemudian melintasi tatasusunan melalui gelung for dan gunakan pernyataan if untuk menentukan sama ada elemen adalah sama dengan 2. Jika ia sama dengan 2, ubah suai kepada 20. Akhir sekali, kami memanggil fungsi print_r() untuk mengeluarkan tatasusunan yang diubah suai.
Perlu diingat bahawa kaedah ini sesuai untuk hanya satu nilai dalam tatasusunan yang perlu diubah suai. Jika terdapat berbilang nilai yang perlu diubah suai, tatasusunan perlu dilalui beberapa kali, dan kecekapan akan menjadi agak rendah.
2. Gunakan gelung foreach untuk mengubah suai nilai tatasusunan
Selain untuk gelung, kita juga boleh menggunakan gelung foreach untuk melintasi tatasusunan dan mengubah suai nilai. Pelaksanaan khusus adalah seperti berikut:
<?php $arr = [ ['name' => 'Tom', 'age' => 18], ['name' => 'Lucy', 'age' => 20], ['name' => 'John', 'age' => 22], ]; foreach($arr as &$val) { if($val['name'] == 'Lucy') { $val['age'] = 21; } } print_r($arr); ?>
Dalam kod di atas, kami mentakrifkan tatasusunan dua dimensi $arr yang mengandungi 3 elemen, di mana setiap subtatasusunan mengandungi dua pasangan nilai kunci: nama dan umur. Kita boleh menggunakan gelung foreach untuk melintasi tatasusunan dan menggunakan pernyataan if untuk menentukan sama ada nama sama dengan Lucy. Jika ia sama dengan Lucy, ubah suai umurnya kepada 21. Perlu diingatkan di sini bahawa kita menggunakan simbol & sebelum pembolehubah gelung $val, menunjukkan bahawa $val ialah rujukan, dan mengubah suai nilainya akan mengubah suai nilai secara langsung dalam tatasusunan asal.
3. Gunakan fungsi array_map() untuk mengubah suai nilai array
PHP menyediakan fungsi array_map() yang sangat mudah, yang boleh melaksanakan fungsi panggil balik untuk setiap elemen dalam tatasusunan. Melalui fungsi ini, kita boleh mengubah suai nilai dalam tatasusunan dengan mudah.
<?php $arr = [1, 2, 3, 4, 5]; $arr = array_map(function($val) { if($val == 2) { return 20; } return $val; }, $arr); print_r($arr); ?>
Dalam kod di atas, kami memanggil fungsi array_map() dan meneruskan fungsi tanpa nama sebagai parameter pertama. Fungsi fungsi tanpa nama ini adalah untuk menentukan sama ada elemen itu sama dengan 2. Jika ia sama dengan 2, kembalikan 20, jika tidak, kembalikan elemen itu sendiri. Akhirnya, kami mengeluarkan tatasusunan yang diubah suai.
4. Gunakan fungsi array_walk() untuk mengubah suai nilai array
Serupa dengan fungsi array_map(), PHP juga menyediakan fungsi array_walk() lain untuk digunakan pada setiap elemen dalam Pengguna tatasusunan -fungsi yang ditetapkan. Contoh khusus adalah seperti berikut:
<?php $arr = [ ['name' => 'Tom', 'age' => 18], ['name' => 'Lucy', 'age' => 20], ['name' => 'John', 'age' => 22], ]; function changeAge(&$val, $key) { if($val['name'] == 'Lucy') { $val['age'] = 21; } } array_walk($arr, 'changeAge'); print_r($arr); ?>
Dalam kod, kami mentakrifkan fungsi changeAge() untuk menentukan sama ada nama subarray dalam tatasusunan adalah sama dengan Lucy. Jika ia sama dengan Lucy, ubah suai umurnya kepada 21. Kemudian, kami memanggil fungsi array_walk(), melepasi changeAge() sebagai parameter kedua. Perlu diingatkan di sini bahawa parameter pertama $val fungsi changeAge() ialah jenis rujukan, iaitu, mengubah suai nilai $val akan mengubah suai nilai secara langsung dalam tatasusunan asal.
Ringkasan:
Melalui empat kaedah di atas, kita boleh mengubah suai nilai dalam tatasusunan dengan mudah. Kaedah yang paling sesuai perlu dipertimbangkan berdasarkan situasi sebenar. Sudah tentu, sebagai tambahan kepada kaedah di atas, terdapat kaedah lain untuk mengubah suai nilai dalam tatasusunan, seperti menggunakan fungsi array_replace(), kitaran rujukan, dsb. Jangan lupa bahawa apabila mengubah suai nilai dalam tatasusunan, anda mesti memberi perhatian kepada ketepatan logik untuk mengelakkan akibat yang tidak perlu.
Atas ialah kandungan terperinci Bagaimana untuk mengubah suai nilai dalam tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!