Cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP
Dalam pembangunan PHP, kita sering menghadapi senario di mana kita perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk membantu anda menyelesaikan tugas ini dengan mudah.
Kaedah 1: Gunakan loop traversal
Kaedah yang paling mudah dan paling mudah ialah menggunakan gelung untuk melintasi tatasusunan dua dimensi dan menambah setiap elemen pada tatasusunan satu dimensi baharu. Berikut ialah contoh kod menggunakan kaedah ini:
function flattenArray($array) { $result = []; foreach ($array as $subArray) { foreach ($subArray as $element) { $result[] = $element; } } return $result; } // 测试 $twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $oneDimensionalArray = flattenArray($twoDimensionalArray); print_r($oneDimensionalArray);
Jalankan kod di atas, output hendaklah:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
Kaedah 2: Gunakan fungsi array_reduce
PHP menyediakan fungsi array_reduce yang berkuasa, yang boleh digunakan untuk menukar dua tatasusunan -dimensi menjadi tatasusunan Satu dimensi. Fungsi array_reduce menerima tatasusunan untuk diproses dan fungsi panggil balik sebagai parameter, yang digunakan untuk memutuskan cara mengurangkan nilai dalam tatasusunan secara beransur-ansur kepada satu nilai. Berikut ialah contoh kod menggunakan fungsi array_reduce:
function flattenArray($array) { return array_reduce($array, function($carry, $item) { return array_merge($carry, $item); }, []); } // 测试 $twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $oneDimensionalArray = flattenArray($twoDimensionalArray); print_r($oneDimensionalArray);
Jalankan kod di atas dan output mestilah tatasusunan satu dimensi yang sama.
Kaedah 3: Gunakan fungsi array_merge
Fungsi array_merge juga boleh digunakan untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Fungsi array_merge menggabungkan berbilang tatasusunan ke dalam satu tatasusunan dan mengembalikan hasilnya. Berikut ialah contoh kod menggunakan fungsi array_merge:
function flattenArray($array) { return call_user_func_array('array_merge', $array); } // 测试 $twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $oneDimensionalArray = flattenArray($twoDimensionalArray); print_r($oneDimensionalArray);
Jalankan kod di atas dan output mestilah tatasusunan satu dimensi yang sama.
Kaedah 4: Gunakan fungsi array_walk_recursive
Fungsi array_walk_recursive digunakan untuk melintasi secara rekursif setiap elemen dalam tatasusunan dan melaksanakan pemprosesan panggil balik padanya. Berikut ialah contoh kod menggunakan fungsi array_walk_recursive:
function flattenArray(&$array) { $result = []; array_walk_recursive($array, function($item) use (&$result) { $result[] = $item; }); return $result; } // 测试 $twoDimensionalArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]; $oneDimensionalArray = flattenArray($twoDimensionalArray); print_r($oneDimensionalArray);
Jalankan kod di atas dan output mestilah tatasusunan satu dimensi yang sama.
Ringkasan
Artikel ini memperkenalkan empat kaedah biasa untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP. Memilih kaedah yang sesuai dengan keperluan projek anda dan tabiat peribadi boleh meningkatkan kebolehbacaan dan kecekapan kod anda. Kaedah pertama ini adalah yang paling biasa dan mudah, tetapi kaedah lain mungkin lebih berkesan dalam senario tertentu. Saya harap artikel ini dapat membantu anda lebih memahami dan menggunakan kaedah ini untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dengan mudah semasa pembangunan.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan 2D kepada tatasusunan 1D dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!