Rumah >pembangunan bahagian belakang >masalah PHP >Cara menggunakan PHP untuk menukar tatasusunan objek dua dimensi
Dalam PHP, kami sering menggunakan tatasusunan untuk menyimpan dan memanipulasi data. Dalam aplikasi praktikal, kadangkala kita perlu menukar tatasusunan objek dua dimensi. Transposisi yang dipanggil adalah untuk menukar baris asal menjadi lajur dan lajur menjadi baris. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengubah susunan objek dua dimensi.
Andaikan kita mempunyai $data tatasusunan objek dua dimensi, yang mengandungi nama pelajar dan gred setiap mata pelajaran, contohnya:
$data = array( array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93), array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89), array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94) );
Tatasusunan ini boleh diwakili sebagai jadual 3x4, seperti yang ditunjukkan di bawah:
姓名 | Math | English | Chinese |
---|---|---|---|
小明 | 90 | 85 | 93 |
小红 | 88 | 92 | 89 |
小刚 | 95 | 87 | 94 |
Matlamat kami adalah untuk menukar jadual ini ke dalam jadual 4x3, di mana baris Satu ialah nama mata pelajaran, dan selebihnya adalah gred setiap pelajar. Seperti yang ditunjukkan di bawah:
小明 | 小红 | 小刚 | |
---|---|---|---|
Math | 90 | 88 | 95 |
English | 85 | 92 | 87 |
Chinese | 93 | 89 | 94 |
Untuk menukar tatasusunan dua dimensi, kita boleh mengikuti langkah berikut:
Dalam PHP, kita boleh menggunakan kod berikut untuk melaksanakan transposisi tatasusunan objek dua dimensi:
function transpose($data) { //获取原数组的行数和列数 $rows = count($data); $cols = count($data[0]) - 1; //创建一个新的二维数组 $result = array(); for($i=0; $i<=$cols; $i++) { $result[$i] = array(); } //遍历原数组,将每个元素的行下标和列下标互换 for($row=0; $row<$rows; $row++) { for($col=1; $col<=$cols; $col++) { $result[$col-1][$row] = $data[$row]['name']; $result[$col-1][$row+1] = $data[$row]["Math"]; $result[$col-1][$row+2] = $data[$row]["English"]; $result[$col-1][$row+3] = $data[$row]["Chinese"]; } } return $result; }
Fungsi ini menerima tatasusunan objek dua dimensi $data sebagai parameter dan mengembalikan Tatasusunan dua dimensi yang ditranspos. Pelaksanaan khusus dibahagikan kepada langkah berikut:
$data = array( array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93), array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89), array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94) ); $result = transpose($data); //输出转置后的数组 foreach($result as $row) { echo implode("\t", $row) . "\n"; }
小明 小红 小刚 90 88 95 85 92 87 93 89 94Ringkasan
Atas ialah kandungan terperinci Cara menggunakan PHP untuk menukar tatasusunan objek dua dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!