Dalam PHP, tatasusunan bersekutu biasanya terdiri daripada pasangan nilai kunci dan juga boleh berbilang dimensi. Tetapi dalam beberapa kes, kita perlu menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi untuk memudahkan pemprosesan dan paparan data. Artikel ini akan memperkenalkan cara menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi.
1. Mengapakah kita perlu menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi
Dalam beberapa kes, kami akan memperoleh tatasusunan tiga dimensi daripada pangkalan data atau sumber data lain , tetapi apabila sebenarnya memproses data, kita hanya perlu menggunakan tatasusunan dua dimensi. Sebagai contoh, jika kami mempunyai tatasusunan tiga dimensi yang mengandungi maklumat bandar dan tarikan untuk semua wilayah di China, dan kami ingin memaparkan maklumat ini pada halaman web, maka kami perlu menukar tatasusunan tiga dimensi ini kepada tatasusunan dua dimensi untuk memudahkan pemprosesan dan paparan data.
2. Cara menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi
Terdapat banyak cara untuk menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi Artikel ini akan memperkenalkan dua kaedah berbeza.
1. Gunakan gelung foreach
Gelung foreach ialah kaedah yang sangat biasa untuk merentasi tatasusunan Semua elemen tatasusunan boleh diperolehi melalui gelung foreach. Untuk tatasusunan tiga dimensi, kita boleh menggunakan gelung foreach bersarang untuk menukarnya kepada tatasusunan dua dimensi. Kodnya adalah seperti berikut:
$sourceArray = array( array( array("a"=>1,"b"=>2), array("a"=>3,"b"=>4), array("a"=>5,"b"=>6) ), array( array("a"=>7,"b"=>8), array("a"=>9,"b"=>10), array("a"=>11,"b"=>12) ), array( array("a"=>13,"b"=>14), array("a"=>15,"b"=>16), array("a"=>17,"b"=>18) ) ); $targetArray = array(); foreach($sourceArray as $province){ foreach($province as $city){ $targetArray[] = array_values($city); } }
Dalam contoh di atas, $sourceArray ialah tatasusunan tiga dimensi yang mengandungi tiga wilayah, setiap wilayah mengandungi berbilang bandar dan setiap bandar mengandungi berbilang tarikan.
Kami mula-mula menggunakan tatasusunan kosong $targetArray sebagai tatasusunan sasaran. Untuk setiap wilayah, kami menggunakan gelung foreach pertama untuk merentasi setiap bandar. Untuk setiap bandar, kami menggunakan gelung foreach kedua untuk merentasi setiap tarikan dan menambahkannya pada $targetArray. Memandangkan setiap bandar dan tarikan ialah tatasusunan bersekutu, kami menukarnya menjadi tatasusunan dua dimensi melalui fungsi array_values().
Akhir sekali, $targetArray menjadi tatasusunan dua dimensi yang mengandungi semua maklumat bandar dan tarikan.
2. Gunakan fungsi array_map
Jika anda tidak suka menggunakan gelung foreach, maka kita boleh menggunakan fungsi array_map untuk menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi . Kodnya adalah seperti berikut:
function flattenArray($element){ return array_values($element); } $sourceArray = array( array( array("a"=>1,"b"=>2), array("a"=>3,"b"=>4), array("a"=>5,"b"=>6) ), array( array("a"=>7,"b"=>8), array("a"=>9,"b"=>10), array("a"=>11,"b"=>12) ), array( array("a"=>13,"b"=>14), array("a"=>15,"b"=>16), array("a"=>17,"b"=>18) ) ); $targetArray = array(); foreach($sourceArray as $province){ $targetArray = array_merge($targetArray,array_map("flattenArray",$province)); }
Dalam contoh ini, kami mentakrifkan fungsi yang dipanggil flattenArray, yang digunakan untuk menukar setiap elemen kepada tatasusunan dua dimensi. Kami kemudian menggunakan fungsi ini untuk setiap bandar menggunakan fungsi array_map, menukarnya menjadi tatasusunan 2D dan menyimpannya dalam tatasusunan $targetArray.
Akhir sekali, $targetArray menjadi tatasusunan dua dimensi yang mengandungi semua maklumat bandar dan tarikan.
3. Ringkasan
Artikel ini memperkenalkan dua kaedah untuk menukar tatasusunan tiga dimensi kepada tatasusunan dua dimensi, yang menggunakan fungsi gelung foreach dan peta_tatasusunan. Walaupun kod untuk kedua-dua kaedah ini berbeza, tujuannya adalah sama. Apabila kami perlu memproses sejumlah besar data, kami boleh menggunakan salah satu kaedah ini untuk menyelesaikan masalah ini.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan tiga dimensi kepada dua dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!