Tukar kepada tatasusunan dua dimensi?
Dalam pengaturcaraan PHP, kadangkala adalah perlu untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi, supaya pemprosesan dan paparan data boleh menjadi lebih mudah. Sebagai contoh, kumpulkan data dalam tatasusunan satu dimensi mengikut peraturan tertentu dan masukkannya ke dalam tatasusunan dua dimensi untuk memudahkan statistik dan analisis. Artikel ini akan memperkenalkan cara menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi dalam PHP, dan cara mengumpulkan dan mengisih data.
PHP menyediakan fungsi yang dipanggil array_chunk(), yang boleh membahagikan array kepada berbilang tatasusunan kecil, setiap kecil Tatasusunan mengandungi bilangan elemen yang ditentukan. Antaranya, parameter $size mewakili bilangan elemen yang terkandung dalam setiap tatasusunan kecil, dan parameter $preserve_keys menentukan sama ada untuk mengekalkan nama kunci tatasusunan asal. Gunakan fungsi ini untuk menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi. Berikut ialah contoh kod:
<?php $original_array = array('a', 'b', 'c', 'd', 'e', 'f'); $chunked_array = array_chunk($original_array, 2); // 将原数组按每2个元素分为一个小数组 print_r($chunked_array); ?>
Keluaran kod di atas adalah seperti berikut:
Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e [1] => f ) )
Melalui fungsi array_chunk(), kami membahagikan tatasusunan asal kepada tiga tatasusunan kecil, setiap satu kecil tatasusunan mengandungi dua elemen. Ini menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi.
Selain menggunakan fungsi array_chunk(), kita juga boleh menggunakan gelung untuk melengkapkan proses penukaran ini. Berikut ialah contoh kod:
<?php $original_array = array('a', 'b', 'c', 'd', 'e', 'f'); $chunked_array = array(); $chunk_size = 2; // 每个小数组包含元素数量 $chunk_count = ceil(count($original_array) / $chunk_size); // 小数组数量 for ($i = 0; $i < $chunk_count; $i++) { $chunked_array[$i] = array_slice($original_array, $i * $chunk_size, $chunk_size); } print_r($chunked_array); ?>
Keluaran kod di atas adalah sama dengan hasil penggunaan fungsi array_chunk() di atas. Dalam contoh ini, kita mula-mula mengira bilangan tatasusunan kecil, dan kemudian gunakan fungsi for loop dan array_slice() untuk memisahkan tatasusunan asal dan menyimpannya dalam tatasusunan $chunked_array.
Selepas menukar tatasusunan satu dimensi kepada tatasusunan dua dimensi, kami boleh mengumpulkan dan mengisih data mengikut keperluan kami sendiri. Berikut ialah contoh kod:
<?php $original_array = array( array('name' => '张三', 'age' => 18, 'gender' => '男'), array('name' => '李四', 'age' => 21, 'gender' => '女'), array('name' => '王五', 'age' => 22, 'gender' => '男'), array('name' => '赵六', 'age' => 19, 'gender' => '女') ); $chunked_array = array_chunk($original_array, 2); // 将原数组按每2个元素分为一个小数组 $sorted_array = array(); foreach ($chunked_array as $chunk) { $sorted_chunk = array(); foreach ($chunk as $item) { $sorted_chunk[(int)$item['age']][] = $item; } ksort($sorted_chunk); $sorted_array[] = $sorted_chunk; } print_r($sorted_array); ?>
Kod di atas mentakrifkan tatasusunan satu dimensi $original_array yang mengandungi empat elemen Setiap elemen ialah tatasusunan bersekutu yang mengandungi tiga pasangan nilai kunci: nama, umur dan jantina. Kami membahagikan tatasusunan asal kepada tatasusunan kecil mengikut setiap dua elemen, dan mengisih elemen dalam tatasusunan kecil mengikut umur Akhirnya, kami mendapat tatasusunan dua dimensi $sorted_array, yang strukturnya adalah seperti berikut:
Array ( [0] => Array ( [18] => Array ( [0] => Array ( [name] => 张三 [age] => 18 [gender] => 男 ) ) [19] => Array ( [0] => Array ( [name] => 赵六 [age] => 19 [gender] => 女 ) ) ) [1] => Array ( [21] => Array ( [0] => Array ( [name] => 李四 [age] => 21 [gender] => 女 ) ) [22] => Array ( [0] => Array ( [name] => 王五 [age] => 22 [gender] => 男 ) ) ) )
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan satu dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!