Dalam PHP, tatasusunan ialah struktur data yang sangat berkuasa dan fleksibel yang boleh menyimpan pelbagai jenis data. Tatasusunan PHP boleh berupa tatasusunan satu dimensi, tatasusunan dua dimensi, tatasusunan berbilang dimensi, dsb.
Dalam proses pembangunan sebenar, kita selalunya perlu menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi untuk memudahkan proses melintasi dan memproses data. Artikel ini akan memperkenalkan cara menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam PHP.
PHP tatasusunan dua dimensi
Dalam PHP, tatasusunan dua dimensi ialah tatasusunan di mana elemen dalam tatasusunan juga tatasusunan. Contohnya:
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) );
Di sini kami mencipta tatasusunan $pelajar, yang mengandungi tiga elemen, setiap elemen ialah tatasusunan yang mengandungi nama, umur dan gred pelajar.
Tukar tatasusunan dua dimensi kepada tatasusunan satu dimensi
Dalam PHP, terdapat banyak cara untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Berikut ialah beberapa kaedah yang biasa digunakan:
Kaedah 1: Loop traversal
Kita boleh menggelung melalui setiap elemen tatasusunan dua dimensi dan kemudian menggabungkannya ke dalam tatasusunan satu dimensi yang baharu.
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array(); foreach ($students as $student) { foreach ($student as $key => $value) { $newArray[$key][] = $value; } } print_r($newArray);
Hasil keluaran kod di atas ialah:
Array ( [name] => Array ( [0] => John [1] => Mike [2] => Mary ) [age] => Array ( [0] => 23 [1] => 21 [2] => 22 ) [score] => Array ( [0] => 90 [1] => 80 [2] => 85 ) )
Seperti yang anda lihat, melalui lintasan gelung, kami menukar tatasusunan dua dimensi kepada tatasusunan bersekutu baharu, di mana setiap elemen sepadan kepada nilai kunci A asal untuk setiap elemen tatasusunan dua dimensi.
Kaedah 2: Gunakan fungsi array_column
PHP menyediakan fungsi array_column untuk mendapatkan lajur yang ditentukan daripada tatasusunan berbilang dimensi. Kita boleh menggunakan fungsi ini untuk mendapatkan nama, umur dan markah setiap pelajar dan kemudian menggabungkan mereka ke dalam tatasusunan satu dimensi baharu.
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array( "name" => array_column($students, "name"), "age" => array_column($students, "age"), "score" => array_column($students, "score") ); print_r($newArray);
Hasil keluaran kod di atas adalah sama dengan kaedah satu.
Kaedah 3: Gunakan fungsi array_reduce
Kita boleh menggunakan fungsi array_reduce untuk mengulangi tatasusunan dua dimensi dan kemudian menggabungkannya menjadi tatasusunan satu dimensi baharu.
$students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array_reduce($students, function($carry, $student) { foreach ($student as $key => $value) { $carry[$key][] = $value; } return $carry; }, array()); print_r($newArray);
Hasil keluaran kod di atas adalah sama dengan kaedah satu.
Kaedah 4: Fungsi tersuai
Kami juga boleh menyesuaikan fungsi untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi.
function array_convert($arr) { $result = array(); foreach ($arr as $row) { foreach ($row as $key => $value) { $result[$key][] = $value; } } return $result; } $students = array( array("name" => "John", "age" => 23, "score" => 90), array("name" => "Mike", "age" => 21, "score" => 80), array("name" => "Mary", "age" => 22, "score" => 85) ); $newArray = array_convert($students); print_r($newArray);
Hasil keluaran kod di atas adalah sama dengan kaedah satu.
Ringkasan
Dalam PHP, terdapat banyak cara untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi, termasuk traversal gelung, menggunakan fungsi array_column, menggunakan fungsi array_reduce dan tersuai fungsi. Kaedah mana yang hendak dipilih bergantung pada keperluan senario tertentu dan tabiat pembangunan. Dalam proses pembangunan sebenar, kita perlu menggunakan kaedah ini secara fleksibel untuk memproses data dengan lebih cekap.
Atas ialah kandungan terperinci php tatasusunan dua dimensi kepada tatasusunan satu dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!