Dalam PHP, tatasusunan dua dimensi ialah struktur data yang sangat biasa. Tetapi dalam beberapa kes, adalah perlu untuk menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Artikel ini membincangkan beberapa cara untuk mencapai fungsi ini.
Kaedah 1: Gunakan gelung foreach
Salah satu kaedah paling asas ialah menggunakan gelung foreach untuk melintasi keseluruhan tatasusunan dua dimensi dan tambahkan setiap nilai pada tatasusunan satu dimensi. Kodnya adalah seperti berikut:
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array(); foreach($twoDimensionalArray as $key=>$value){ foreach($value as $k=>$v){ $oneDimensionalArray[] = $v; } } print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
Kaedah 2: Gunakan fungsi array_merge
Kaedah lain ialah menggunakan fungsi array_merge, yang menggabungkan dua atau lebih tatasusunan menjadi satu tatasusunan. Menggunakan fungsi ini, anda boleh menukar setiap baris tatasusunan 2D kepada tatasusunan 1D dan menggabungkannya menjadi tatasusunan tunggal. Kodnya kelihatan seperti ini:
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array(); foreach($twoDimensionalArray as $value){ $oneDimensionalArray = array_merge($oneDimensionalArray, array_values($value)); } print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
Kaedah Tiga: Menggunakan fungsi array_reduce
Kaedah terakhir ialah menggunakan fungsi array_reduce, yang menggunakan fungsi panggil balik untuk setiap nilai dalam tatasusunan dan mengembalikan satu nilai. Dalam contoh ini, anda boleh menggunakan fungsi array_reduce untuk menukar setiap baris tatasusunan dua dimensi kepada tatasusunan satu dimensi dan menggabungkan tatasusunan satu dimensi semua baris menjadi satu tatasusunan besar. Kodnya adalah seperti berikut:
$twoDimensionalArray = array( array('fruit'=>'apple', 'color'=>'red'), array('fruit'=>'banana', 'color'=>'yellow'), array('fruit'=>'grape', 'color'=>'purple') ); $oneDimensionalArray = array_reduce($twoDimensionalArray,function($carry,$item){ return array_merge($carry,array_values($item)); },array()); print_r($oneDimensionalArray); //输出结果如下: Array ( [0] => apple [1] => red [2] => banana [3] => yellow [4] => grape [5] => purple )
Ringkasan:
Tiga kaedah di atas boleh membantu kita menukar tatasusunan dua dimensi kepada tatasusunan satu dimensi. Jika anda berurusan dengan sejumlah besar data, anda mungkin mahu menguji prestasi dan kecekapannya. Pilih kaedah yang paling sesuai dengan tugas kita dengan membandingkan prestasi dan kesesuaiannya.
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!