Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggantikan nilai k dalam tatasusunan 2D dalam PHP

Bagaimana untuk menggantikan nilai k dalam tatasusunan 2D dalam PHP

PHPz
PHPzasal
2023-04-19 10:06:53584semak imbas

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas Ia mudah dipelajari, fleksibel, cekap dan sumber terbuka Oleh itu, ia telah menjadi bahasa pilihan bagi banyak perusahaan dan pembangun. Dalam PHP, tatasusunan dua dimensi juga merupakan salah satu struktur data yang paling biasa Mereka boleh menyimpan sejumlah besar data dan melakukan pertanyaan dan traversal data yang pantas. Artikel ini akan memberi tumpuan kepada cara menggantikan nilai k dalam tatasusunan dua dimensi dalam PHP.

Tatasusunan dua dimensi

Dalam PHP, tatasusunan ialah jenis data yang sangat penting. Tatasusunan boleh menyimpan berbilang nilai di bawah satu nama pembolehubah, dan nilai ini boleh terdiri daripada jenis data yang berbeza, seperti rentetan, integer, objek, dsb.

Tatasusunan dalam PHP dibahagikan kepada tatasusunan satu dimensi dan tatasusunan berbilang dimensi. Antaranya, tatasusunan berbilang dimensi dibahagikan kepada tatasusunan dua dimensi, tatasusunan tiga dimensi, tatasusunan empat dimensi, dsb. Tatasusunan dua dimensi merujuk kepada tatasusunan yang mengandungi pelbagai tatasusunan satu dimensi.

Kod sampel untuk mentakrif tatasusunan dua dimensi adalah seperti berikut:

$students = array(
   array("name"=>"张三", "age"=>18, "score"=>85),
   array("name"=>"李四", "age"=>19, "score"=>90),
   array("name"=>"王五", "age"=>20, "score"=>75)
);

Kod di atas mentakrifkan tatasusunan dua dimensi bernama $students, yang mengandungi tiga tatasusunan satu dimensi. Setiap tatasusunan satu dimensi mengandungi tiga elemen, yang mewakili nama, umur dan gred pelajar.

Ganti nilai k dalam tatasusunan dua dimensi

Kadangkala, kita perlu menggantikan beberapa nilai k dalam tatasusunan dua dimensi. Untuk mencapai matlamat ini, kita boleh menggunakan fungsi array_map dan fungsi array_column yang disediakan dalam PHP. Langkah-langkah khusus adalah seperti berikut:

Dalam langkah pertama, gunakan fungsi array_column untuk mendapatkan lajur tatasusunan asal dan jana tatasusunan satu dimensi baharu. Nilai k yang sepadan dengan lajur ini ialah nilai k yang ingin kami gantikan.

Kod sampel adalah seperti berikut:

$key_array = array_column($students, 'name');

Kod ini mengekstrak nilai kekunci nama setiap tatasusunan satu dimensi dalam tatasusunan $pelajar untuk membentuk tatasusunan satu dimensi baharu $key_array .

Langkah kedua ialah menggunakan fungsi array_map untuk merentasi tatasusunan satu dimensi baharu dan menggantikan nilai setiap elemen melalui fungsi panggil balik. Dalam fungsi panggil balik, gunakan nilai setiap elemen sebagai nilai k baharu, cari tatasusunan satu dimensi yang sepadan dengan nilai k ini dalam tatasusunan dua dimensi asal, dan gantikan nilai knya dengan nilai k baharu.

Kod sampel adalah seperti berikut:

$new_key_array = array_map(function($val) use ($students) {
      foreach($students as &$student) {
         if($student['name'] == $val) {
            $student['new_name'] = $student['name'];
            unset($student['name']);
            return $student;
         }
      }  
}, $key_array);

Kod ini merentasi tatasusunan $key_array Untuk setiap elemen $val, ia merentasi tatasusunan asal $pelajar melalui gelung foreach dan mencari masuk tatasusunan asal Tatasusunan satu dimensi sepadan dengan $val dan menggantikan nilai kekunci namanya dengan nilai kunci baharu new_name. Akhir sekali, padamkan kekunci nama asal dalam tatasusunan satu dimensi dan kembalikan tatasusunan satu dimensi yang diubah suai.

Langkah ketiga ialah menyemak tatasusunan baharu untuk mengesahkan sama ada operasi penggantian berkuat kuasa.

Kod akhir adalah seperti berikut:

$students = array(
  array("name"=>"张三", "age"=>18, "score"=>85),
  array("name"=>"李四", "age"=>19, "score"=>90),
  array("name"=>"王五", "age"=>20, "score"=>75)
);

$key_array = array_column($students, 'name');

$new_key_array = array_map(function($val) use ($students) {
  foreach($students as &$student) {
     if($student['name'] == $val) {
        $student['new_name'] = $student['name'];
        unset($student['name']);
        return $student;
     }
  }  
}, $key_array);

print_r($students);

Menjalankan kod di atas, kita boleh mendapatkan output berikut:

Array
(
    [0] => Array
        (
            [age] => 18
            [score] => 85
            [new_name] => 张三
        )

    [1] => Array
        (
            [age] => 19
            [score] => 90
            [new_name] => 李四
        )

    [2] => Array
        (
            [age] => 20
            [score] => 75
            [new_name] => 王五
        )
)

Seperti yang dapat dilihat daripada output , kami Kunci nama asal telah berjaya digantikan dengan kunci baru new_name.

Ringkasan

Dalam PHP, menggantikan nilai k dalam tatasusunan dua dimensi ialah operasi yang agak biasa. Dengan menggunakan fungsi array_map dan fungsi array_column, kami boleh melaksanakan operasi ini dengan mudah. Dalam pembangunan sebenar, kita perlu memilih kaedah yang paling sesuai untuk melaksanakan operasi ini mengikut situasi khusus untuk meningkatkan kecekapan pembangunan dan kualiti kod.

Atas ialah kandungan terperinci Bagaimana untuk menggantikan nilai k dalam tatasusunan 2D dalam PHP. 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