Dalam PHP, tatasusunan dua dimensi ialah struktur data biasa Ia terdiri daripada pelbagai tatasusunan satu dimensi dan setiap tatasusunan satu dimensi boleh mengandungi berbilang elemen. Dalam sesetengah kes, kita perlu membahagikan tatasusunan dua dimensi kepada berbilang tatasusunan satu dimensi untuk operasi dan pemprosesan yang lebih fleksibel. Artikel ini akan menerangkan cara membahagi tatasusunan dua dimensi kepada tatasusunan satu dimensi.
1. Gunakan gelung foreach
Dalam PHP, kita boleh melintasi tatasusunan dua dimensi dengan menggunakan gelung foreach, dan kemudian mendapatkan tatasusunan satu dimensi yang sepadan melalui indeks tatasusunan. Berikut ialah contoh menggunakan gelung foreach untuk membahagi tatasusunan dua dimensi kepada tatasusunan satu dimensi:
$twoDimensionalArray = array( array('A', 'B', 'C'), array('D', 'E', 'F'), array('G', 'H', 'I') ); $oneDimensionalArray1 = array(); $oneDimensionalArray2 = array(); $oneDimensionalArray3 = array(); foreach ($twoDimensionalArray as $key => $value) { $oneDimensionalArray1[] = $value[0]; $oneDimensionalArray2[] = $value[1]; $oneDimensionalArray3[] = $value[2]; } print_r($oneDimensionalArray1); print_r($oneDimensionalArray2); print_r($oneDimensionalArray3);
Dalam contoh ini, kami menggunakan gelung foreach untuk mengulangi tatasusunan dua dimensi $twoDimensionalArray dan dapatkan setiap tatasusunan satu dimensi mengikut elemen indeks tatasusunan. Kemudian, kami membahagikan tatasusunan dua dimensi kepada tiga tatasusunan satu dimensi $oneDimensionalArray1, $oneDimensionalArray2 dan $oneDimensionalArray3 dengan menambahkan nilai elemen pada tatasusunan satu dimensi yang sepadan.
2. Gunakan fungsi array_column
Selepas PHP5.5, kita boleh memisahkan lajur tatasusunan dua dimensi kepada tatasusunan satu dimensi dengan menggunakan fungsi array_column. Berikut ialah contoh menggunakan fungsi array_column untuk memisahkan tatasusunan dua dimensi kepada tatasusunan satu dimensi:
$twoDimensionalArray = array( array('id' => 1, 'name' => 'apple', 'price' => 3.5), array('id' => 2, 'name' => 'banana', 'price' => 2.5), array('id' => 3, 'name' => 'orange', 'price' => 4.0) ); $idArray = array_column($twoDimensionalArray, 'id'); $nameArray = array_column($twoDimensionalArray, 'name'); $priceArray = array_column($twoDimensionalArray, 'price'); print_r($idArray); print_r($nameArray); print_r($priceArray);
Dalam contoh ini, kami menggunakan fungsi array_column untuk memisahkan setiap lajur tatasusunan dua dimensi $twoDimensionalArray ke dalam tatasusunan satu dimensi $idArray, $nameArray dan $priceArray. Menggunakan fungsi ini mengelakkan penggunaan gelung foreach untuk melintasi tatasusunan dan lebih ringkas dan lebih mudah untuk diselenggara.
3. Gunakan fungsi array_map
Dalam PHP, kita juga boleh menggunakan fungsi array_map untuk membahagikan tatasusunan dua dimensi kepada berbilang tatasusunan satu dimensi. Berikut ialah contoh menggunakan fungsi array_map untuk membahagikan tatasusunan dua dimensi kepada tatasusunan satu dimensi:
$twoDimensionalArray = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); $firstArray = array_map(function($arr) { return $arr[0]; }, $twoDimensionalArray); $secondArray = array_map(function($arr) { return $arr[1]; }, $twoDimensionalArray); $thirdArray = array_map(function($arr) { return $arr[2]; }, $twoDimensionalArray); print_r($firstArray); print_r($secondArray); print_r($thirdArray);
Dalam contoh ini, kami menggunakan fungsi array_map untuk membahagikan tatasusunan dua dimensi $twoDimensionalArray kepada tiga tatasusunan satu dimensi $firstArray, $secondArray dan $thirdArray. Kami memisahkan elemen setiap tatasusunan satu dimensi dalam tatasusunan dan mengembalikannya sebagai tatasusunan satu dimensi baharu dengan menggunakan fungsi tanpa nama.
Melalui tiga kaedah di atas, kita boleh membahagikan tatasusunan dua dimensi kepada pelbagai tatasusunan satu dimensi untuk memudahkan manipulasi dan pemprosesan data yang lebih baik. Menggunakan kaedah ini boleh mengurangkan jumlah kod, meningkatkan kebolehbacaan dan kebolehselenggaraan kod, dan juga menjadikan prestasi program lebih cekap.
Atas ialah kandungan terperinci Bagaimana untuk membahagikan tatasusunan 2D ke dalam tatasusunan 1D php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!