Dalam pengaturcaraan PHP, tatasusunan ialah struktur data yang sangat biasa digunakan dan tatasusunan berbilang dimensi menjadikannya lebih mudah untuk kami memproses data yang kompleks. Walau bagaimanapun, kadangkala kita perlu menukar tatasusunan berbilang dimensi ke dalam bentuk tatasusunan lain, atau menukar bentuk tatasusunan lain kepada tatasusunan berbilang dimensi. Artikel ini akan memperkenalkan cara menukar antara tatasusunan berbilang dimensi dalam PHP.
1. Tukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi
Dalam sesetengah kes, kita perlu menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi untuk memudahkan penyimpanan atau penghantaran data. PHP menyediakan array_values() fungsi yang sangat mudah, yang boleh menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi. Lihat kod contoh berikut:
$multi_dimension_array = array( array('a', 'b', 'c'), array('d' => 'e', 'f' => 'g'), array(1, 2, 3) ); $one_dimension_array = array_values(array_reduce($multi_dimension_array, 'array_merge', array())); print_r($one_dimension_array);
Hasil output ialah:
Array ( [0] => a [1] => b [2] => c [3] => e [f] => g [4] => 1 [5] => 2 [6] => 3 )
Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan berbilang dimensi $multi_dimension_array, yang mengandungi tiga sub-tatasusunan. Kami kemudian menggunakan fungsi array_reduce() PHP dan fungsi array_merge() untuk menggabungkan berbilang subarray ke dalam tatasusunan satu dimensi. Akhir sekali, kami menggunakan fungsi array_values() untuk mengindeks semula tatasusunan satu dimensi yang digabungkan dan mengeluarkan hasilnya.
2. Menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi
Begitu juga, kadangkala kita juga perlu menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi. PHP juga menyediakan beberapa fungsi praktikal untuk mencapai tujuan ini. Dua kaedah akan diperkenalkan di bawah.
Fungsi array_chunk() dalam PHP boleh memisahkan tatasusunan satu dimensi kepada berbilang tatasusunan kecil mengikut saiz yang ditentukan dan mengembalikan Tatasusunan dua dimensi baharu. Kod sampel adalah seperti berikut:
$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'); $multi_dimension_array = array_chunk($one_dimension_array, 3); print_r($multi_dimension_array);
Hasil output ialah:
Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] => Array ( [0] => g [1] => h [2] => i ) [3] => Array ( [0] => j ) )
Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan satu dimensi $one_dimension_array. Kemudian, kami menggunakan fungsi array_chunk() untuk memisahkan $one_dimension_array kepada berbilang tatasusunan kecil dengan panjang 3 dan mengembalikan tatasusunan dua dimensi baharu $multi_dimension_array.
Jika anda tidak mahu menggunakan fungsi array_chunk(), anda juga boleh menggunakan gelung foreach untuk menukar tatasusunan satu dimensi kepada tatasusunan pelbagai dimensi. Kod sampel adalah seperti berikut:
$one_dimension_array = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'); $multi_dimension_array = array(); $count = 0; foreach ($one_dimension_array as $item) { $multi_dimension_array[floor($count / 3)][$count % 3] = $item; $count++; } print_r($multi_dimension_array);
Hasil output ialah:
Array ( [0] => Array ( [0] => a [1] => b [2] => c ) [1] => Array ( [0] => d [1] => e [2] => f ) [2] => Array ( [0] => g [1] => h [2] => i ) [3] => Array ( [0] => j ) )
Dalam kod sampel di atas, kami mula-mula mentakrifkan tatasusunan dua dimensi kosong $multi_dimension_array, dan pembolehubah kiraan $count . Kami kemudian menggunakan gelung foreach untuk menggelungkan setiap elemen dalam tatasusunan $one_dimension_array dan menambah elemen itu pada tatasusunan $multi_dimension_array. Kami menggunakan floor($count / 3) untuk menentukan indeks subarray baharu dan $count % 3 untuk menentukan indeks elemen baharu dalam subarray. Akhir sekali, kami menggunakan fungsi print_r() untuk mengeluarkan keputusan.
3. Ringkasan
Dalam pengaturcaraan PHP, memproses tatasusunan adalah tugas yang sangat biasa. Sama ada ia menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi, atau menukar tatasusunan satu dimensi kepada tatasusunan berbilang dimensi, PHP menyediakan beberapa fungsi dan kaedah yang sangat praktikal. Melalui pengenalan artikel ini, saya percaya bahawa pembaca telah memahami penggunaan fungsi dan kaedah ini dan boleh menggunakannya secara fleksibel dalam pembangunan sebenar.
Atas ialah kandungan terperinci Tukar antara tatasusunan berbilang dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!