Apabila melakukan beberapa operasi pemprosesan tatasusunan, kadangkala anda perlu menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi Artikel ini akan memperkenalkan beberapa kaedah untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php.
Kaedah 1: Loop traversal
Kaedah mudah ialah menggunakan foreach loop untuk melintasi tatasusunan dua dimensi dan menambah elemennya pada tatasusunan satu dimensi.
function array2To1($arr2){ $arr1 = array(); foreach($arr2 as $v){ foreach($v as $v2){ $arr1[] = $v2; } } return $arr1; }
Contoh penggunaan:
$arr2 = array(array(1,2),array(3,4),array(5,6)); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Kaedah 2: Rekursi
Kaedah biasa lain ialah menggunakan rekursi untuk memproses tatasusunan berbilang dimensi, mengelupasnya dari lapisan dengan lapisan ke dalam tatasusunan satu dimensi.
function array2To1($arr2){ $arr1 = array(); foreach($arr2 as $v){ if(is_array($v)){ $arr1 = array_merge($arr1,array2To1($v)); }else{ $arr1[] = $v; } } return $arr1; }
Contoh penggunaan:
$arr2 = array(array(1,2),3,array(array(4,5),6),7); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )
Kaedah 3: Gunakan fungsi terbina dalam PHP
PHP menyediakan beberapa fungsi terbina dalam untuk mengendalikan tatasusunan berbilang dimensi, termasuk array_reduce(), array_merge_recursive() dan call_user_func_array() dsb.
function array2To1($arr2){ return call_user_func_array('array_merge_recursive', $arr2); }
Contoh penggunaan:
$arr2 = array(array(1,2),array(3,4),array(5,6)); $arr1 = array2To1($arr2); print_r($arr1); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )
Selepas ujian sebenar, menggunakan kaedah tiga lebih memakan masa, jadi kaedah ini tidak disyorkan apabila memproses tatasusunan besar.
Ringkasan:
Setiap kaedah mempunyai kelebihan dan kekurangannya sendiri, dan kaedah mana yang harus dipilih akhirnya bergantung pada keperluan dan senario tertentu. Saya harap artikel ini dapat membantu anda Jika anda mempunyai kaedah yang lebih baik, sila kongsikan di ruangan komen.
Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!