Dalam PHP, tatasusunan ialah struktur data yang menyimpan berbilang nilai. Kadangkala kita perlu menambah lajur pada tatasusunan, seperti menambah beberapa maklumat tambahan pada set hasil selepas pertanyaan pangkalan data. Artikel ini akan memperkenalkan kaedah yang berbeza untuk menambah lajur dalam tatasusunan PHP.
Kaedah 1: Gunakan gelung untuk menetapkan lajur baharu
Kaedah pertama ialah menggunakan gelung untuk melintasi tatasusunan dan menambah nilai lajur pada setiap elemen tatasusunan. Sebagai contoh, katakan kita mempunyai tatasusunan berikut:
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) );
Sekarang kita mahu menambah lajur "jantina" untuk setiap orang, dengan nilai ditentukan secara automatik berdasarkan nama mereka. Kita boleh menggunakan kod berikut untuk menyelesaikannya:
foreach ($persons as &$person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } }
Dalam kod di atas, kami telah menggunakan gelung foreach untuk lelaran melalui elemen tatasusunan setiap orang. Dalam gelung, kami menambah lajur "jantina" pada elemen tatasusunan setiap orang dan memberikan nilai padanya.
Perlu diambil perhatian bahawa pembolehubah $orang dilalui dengan rujukan, jadi kami menggunakan simbol &. Ini memastikan bahawa apabila elemen yang dirujuk oleh $person diubah suai dalam gelung, elemen dalam tatasusunan asal juga diubah suai.
Kaedah 2: Gunakan fungsi array_map untuk menambah lajur
Kaedah kedua ialah menggunakan fungsi array_map terbina dalam PHP untuk menambah lajur. Fungsi array_map menggunakan fungsi untuk setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu. Contohnya, kod berikut:
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) ); $gender_mapper = function($person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } return $person; }; $new_persons = array_map($gender_mapper, $persons);
Dalam kod di atas, kami mentakrifkan fungsi tanpa nama bernama $gender_mapper dan menggunakan fungsi ini untuk memanggil fungsi array_map. Fungsi $gender_mapper menerima parameter tatasusunan $orang, menambahkan lajur "jantina" untuk setiap orang dan akhirnya mengembalikan tatasusunan $orang yang meningkat.
Perlu diambil perhatian bahawa fungsi array_map mengembalikan bukan tatasusunan asal, tetapi tatasusunan baharu. Oleh itu, kita perlu menyimpan keputusan dalam pembolehubah baharu $new_persons.
Kaedah 3: Gunakan fungsi array_walk untuk menambah lajur
Kaedah ketiga ialah menggunakan fungsi array_walk terbina dalam PHP untuk menambah lajur. Fungsi array_walk merentasi setiap elemen dalam tatasusunan dan beroperasi pada elemen dalam fungsi panggil balik yang diterima, yang boleh diubah suai terus pada tatasusunan asal.
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) ); function add_gender(&$person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } } array_walk($persons, 'add_gender');
Dalam kod di atas, kami mentakrifkan fungsi yang dipanggil add_gender dan menggunakan fungsi ini untuk memanggil fungsi array_walk. Fungsi add_gender menerima parameter tatasusunan $orang dan menambahkan lajur "jantina" untuk setiap orang dalam tatasusunan.
Perlu diambil perhatian bahawa parameter $person dalam fungsi add_gender diluluskan melalui rujukan, yang juga bermakna kami mengubah suai elemen tatasusunan $person dalam fungsi panggil balik.
Ringkasan
Di atas memperkenalkan tiga kaedah berbeza untuk menambah lajur dalam tatasusunan PHP. Kaedah pertama ialah menggunakan gelung untuk menetapkan lajur baharu, kaedah kedua ialah menggunakan fungsi peta_tatasusunan, dan kaedah ketiga ialah menggunakan fungsi tatasusunan_jalan. Bergantung pada keperluan khusus anda dan pelaksanaan kod, anda boleh memilih satu atau lebih kaedah ini.
Perlu diambil perhatian bahawa kaedah di atas adalah untuk tatasusunan bersekutu Untuk menambah lajur pada tatasusunan biasa, hanya gunakan operator []. Contohnya:
$arr = array(1, 2, 3); $arr[] = 4; // 数组末尾增加一列
Atas ialah kandungan terperinci Tambahkan lajur pada tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!