Dalam PHP, tatasusunan berbilang dimensi merujuk kepada struktur tatasusunan yang mengandungi tatasusunan lain atau berbilang, seperti:
$array = array( array('name' => 'John', 'age' => 20), array('name' => 'Mary', 'age' => 25), array('name' => 'Mark', 'age' => 30) );
Ini ialah tatasusunan dua dimensi yang mengandungi tiga elemen, setiap satu Unsur ialah setiap satu subarray yang mengandungi dua pasangan nilai kunci: "nama" dan "umur". Jika anda ingin menukar tatasusunan dua dimensi ini kepada tatasusunan satu dimensi, anda boleh menggunakan beberapa fungsi dalam PHP untuk mencapainya.
Kaedah 1: Gunakan fungsi array_column()
Fungsi array_column() PHP boleh mengekstrak nilai yang sepadan dengan kunci yang ditentukan bagi setiap elemen dalam tatasusunan dan mengembalikan tatasusunan baharu yang mengandungi nilai ini. . Jika kunci yang ditentukan tidak wujud, elemen itu diabaikan. Kita boleh mengekstrak nilai yang sepadan dengan kekunci "nama" semua elemen dalam tatasusunan dua dimensi dan mendapatkan tatasusunan satu dimensi yang mengandungi 3 elemen:
$array = array( array('name' => 'John', 'age' => 20), array('name' => 'Mary', 'age' => 25), array('name' => 'Mark', 'age' => 30) ); $names = array_column($array, 'name'); print_r($names); // 输出:Array ( [0] => John [1] => Mary [2] => Mark )
Kaedah 2: Gunakan array_reduce( ) fungsi
Fungsi array_reduce() PHP boleh mengulang tatasusunan mengikut peraturan fungsi panggil balik untuk menghasilkan nilai akhir. Kita boleh menggunakan fungsi ini untuk menggabungkan subarray setiap elemen dalam tatasusunan dua dimensi ke dalam tatasusunan satu dimensi:
$array = array( array('name' => 'John', 'age' => 20), array('name' => 'Mary', 'age' => 25), array('name' => 'Mark', 'age' => 30) ); $flatten = array_reduce($array, function($carry, $item) { return array_merge($carry, $item); }, array()); print_r($flatten); // 输出:Array ( [name] => Mark [age] => 30 )
Dalam kod di atas, fungsi array_reduce() menerima fungsi panggil balik dan nilai pemula. Parameter $carry bagi fungsi panggil balik mewakili hasil semasa, dan $item mewakili nilai elemen semasa. Nilai awal ialah tatasusunan kosong, yang bermaksud tatasusunan hasil akhir memulakan pemprosesan berulang dengan tatasusunan kosong sebagai nilai awal. Fungsi array_merge() digunakan dalam fungsi panggil balik untuk menggabungkan subarray elemen semasa dan tatasusunan hasil sebelumnya.
Perlu diambil perhatian bahawa jika setiap elemen dalam tatasusunan dua dimensi mempunyai bilangan pasangan nilai kunci yang berbeza, kaedah 2 di atas hanya boleh mendapatkan semua pasangan nilai kunci bagi elemen terakhir. Dalam situasi yang lebih ketat, subarray boleh disahkan sebelum menggelung untuk mengelakkan kehilangan data.
Di atas ialah dua kaedah untuk menukar tatasusunan berbilang dimensi PHP kepada tatasusunan satu dimensi. Memilih kaedah yang sesuai mengikut peristiwa tertentu dan struktur data boleh meningkatkan kecekapan dan kebolehbacaan kod.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!