Rumah > pembangunan bahagian belakang > masalah PHP > Tambahkan lajur pada tatasusunan php

Tambahkan lajur pada tatasusunan php

PHPz
Lepaskan: 2023-05-07 13:15:08
asal
983 orang telah melayarinya

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)
);
Salin selepas log masuk

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';
  }
}
Salin selepas log masuk

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);
Salin selepas log masuk

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');
Salin selepas log masuk

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; // 数组末尾增加一列
Salin selepas log masuk

Atas ialah kandungan terperinci Tambahkan lajur pada tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan