Rumah > Artikel > pembangunan bahagian belakang > Tukar tatasusunan satu dimensi kepada tatasusunan dua dimensi php
Dalam PHP, tatasusunan pemprosesan ialah salah satu keperluan yang paling biasa. Kadangkala kita perlu menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi Proses ini mungkin melibatkan pelbagai operasi data, yang memerlukan kami menggunakan fungsi tatasusunan secara fleksibel untuk mencapai penukaran. Artikel ini akan memperkenalkan beberapa kaedah dan teknik untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi dalam PHP.
1. Keperluan untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi
Dalam PHP, tatasusunan satu dimensi dan tatasusunan dua dimensi ialah struktur data biasa. Tatasusunan satu dimensi ialah tatasusunan dengan hanya satu dimensi dan biasanya digunakan untuk menyimpan set data yang berkaitan, seperti skor ujian pelajar. Tatasusunan dua dimensi mengandungi tatasusunan dua dimensi dan biasanya digunakan untuk menyimpan berbilang set data berkaitan, seperti markah ujian semua pelajar dalam kelas. Dalam PHP, kita biasanya menggunakan fungsi tatasusunan untuk mencipta tatasusunan satu dimensi, dan fungsi tatasusunan peringkat kedua untuk membuat tatasusunan dua dimensi. Berikut ialah contoh mudah untuk mencipta tatasusunan satu dimensi dan tatasusunan dua dimensi:
$array1 = array("语文"=>85, "数学"=>90, "英语"=>88); $array2 = array( array("姓名"=>"张三","语文"=>85,"数学"=>90,"英语"=>88), array("姓名"=>"李四","语文"=>89,"数学"=>92,"英语"=>86), array("姓名"=>"王五","语文"=>90,"数学"=>87,"英语"=>91), array("姓名"=>"赵六","语文"=>88,"数学"=>91,"英语"=>89) );
Kadangkala kita menghadapi situasi di mana kita perlu menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi. Sebagai contoh, kita mempunyai sekumpulan markah ujian pelajar Kita perlu mengumpulkan kumpulan markah ini mengikut peraturan tertentu, dan kemudian menukarnya kepada tatasusunan dua dimensi untuk memudahkan pemprosesan atau paparan berikutnya. Ini adalah keperluan untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi Beberapa kaedah pelaksanaan akan diperkenalkan di bawah.
2. Gunakan fungsi array_chunk
Fungsi array_chunk ialah salah satu fungsi terbina dalam PHP Fungsinya adalah untuk memisahkan tatasusunan satu dimensi kepada beberapa tatasusunan kecil dengan panjang yang ditentukan gabungkan tatasusunan kecil ini menjadi tatasusunan dua dimensi baharu dikembalikan. Sebagai contoh, kami mempunyai tatasusunan satu dimensi berikut:
$students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89);
Kami perlu mengumpulkan tatasusunan ini kepada kumpulan 4 dan kemudian menukarnya kepada tatasusunan dua dimensi yang baharu Anda boleh menggunakan kaedah berikut:
$grouped_scores = array_chunk($students_scores, 4);
Kaedah ini akan mengembalikan tatasusunan dua dimensi dengan panjang 3, setiap tatasusunan kecil mengandungi 4 elemen. Jika panjang tatasusunan asal bukan gandaan integer panjang tatasusunan kecil, tatasusunan kecil terakhir akan mengandungi unsur-unsur yang tinggal. Kita boleh menggunakan fungsi var_dump untuk melihat keputusan:
var_dump($grouped_scores);
Keputusan yang dijalankan adalah seperti berikut:
array (size=3) 0 => array (size=4) 0 => int 85 1 => int 90 2 => int 88 3 => int 89 1 => array (size=4) 0 => int 92 1 => int 86 2 => int 90 3 => int 87 2 => array (size=4) 0 => int 91 1 => int 88 2 => int 91 3 => int 89
Seperti yang anda lihat, tatasusunan asal dibahagikan kepada tiga tatasusunan kecil dengan panjang 4, dan kemudian tatasusunan kecil ini Tatasusunan dua dimensi baharu terbentuk.
3. Gunakan fungsi array_map
Fungsi array_map ialah salah satu fungsi terbina dalam PHP adalah untuk menggunakan fungsi panggil balik yang ditentukan pada setiap elemen satu atau lebih tatasusunan. Kita boleh menggunakan fungsi array_map untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi. Kaedah khusus adalah seperti berikut:
function group_by($n, $array) { return array_chunk($array, $n); } $students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89); $grouped_scores = array_map('group_by', array(4), array($students_scores));
Antaranya, fungsi group_by digunakan untuk mengumpulkan tatasusunan satu dimensi ke dalam tatasusunan dua dimensi dengan panjang $n$. Kami kemudian menggunakan fungsi ini pada tatasusunan $students_scores$ menggunakan fungsi array_map, menghasilkan tatasusunan 2D baharu. Jika panjang yang akan dibahagikan adalah berbeza, anda boleh menukar parameter pertama fungsi tatasusunan kepada tatasusunan dengan panjang $m$, dengan $m$ ialah panjang yang akan dibahagikan. Sebagai contoh, kod berikut membahagi tatasusunan asal kepada tatasusunan dua dimensi panjang 3 dan panjang 4:
$grouped_scores = array_map('group_by', array(3,4), array($students_scores));
4. Gunakan lintasan gelung
Dalam PHP, kita boleh menggunakan gelung Kaedah traversal menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi. Kaedah khusus adalah seperti berikut:
$students_scores = array(85, 90, 88, 89, 92, 86, 90, 87, 91, 88, 91, 89); $grouped_scores = array(); for ($i = 0; $i < count($students_scores); $i += 4) { $grouped_scores[] = array_slice($students_scores, $i, 4); }
Antaranya, fungsi array_slice digunakan untuk mendapatkan bahagian yang ditentukan dalam tatasusunan. Di sini, kami menggunakan lintasan gelung untuk memisahkan tatasusunan asal, mengeluarkan 4 elemen bermula dari $i$ setiap kali, dan kemudian menambahkannya pada tatasusunan hasil sebagai tatasusunan kecil.
5. Ringkasan
Terdapat banyak cara untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi dalam PHP, yang paling biasa ialah menggunakan fungsi array_chunk atau pelaksanaan lintasan gelung. Fungsi array_map juga merupakan kaedah yang lebih fleksibel dan boleh menggunakan panjang split yang berbeza mengikut keperluan yang berbeza. Dalam aplikasi praktikal, kita perlu memilih kaedah yang berbeza mengikut situasi sebenar untuk mencapai kesan penukaran yang terbaik.
Atas ialah kandungan terperinci Tukar tatasusunan satu dimensi kepada tatasusunan dua dimensi php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!