Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengalih keluar beberapa lajur daripada tatasusunan dua dimensi dalam php
Dalam pengaturcaraan PHP, tatasusunan dua dimensi ialah salah satu jenis data yang sangat biasa. Tatasusunan dua dimensi terdiri daripada tatasusunan berbilang satu dimensi, yang boleh memudahkan penyimpanan dan pemprosesan data berbilang dimensi. Dalam pengaturcaraan sebenar, kita selalunya perlu mengeluarkan beberapa lajur daripada tatasusunan dua dimensi dan mengendalikan atau mengeluarkannya. Artikel ini akan memperkenalkan beberapa kaedah untuk mengekstrak beberapa lajur daripada tatasusunan dua dimensi.
1. Gunakan gelung traversal
Kaedah yang paling mudah ialah menggunakan gelung untuk melintasi tatasusunan dua dimensi dan mengalih keluar lajur yang diperlukan. Berikut ialah kod sampel:
$array = array( array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'), array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'), array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'), ); $columns = array('name', 'age'); foreach($array as $key => $item){ foreach($columns as $col){ echo $item[$col]." "; } echo "<br/>"; }
Di sini kami mentakrifkan tatasusunan dua dimensi $array, yang mengandungi maklumat seperti id, nama, umur dan alamat setiap orang. Kami perlu mengeluarkan maklumat lajur nama dan umur daripadanya. Gunakan dua gelung foreach untuk melintasi tatasusunan dan lajur yang perlu dikeluarkan. Melalui $item[$col], anda boleh mendapatkan semula maklumat yang sepadan bagi setiap orang dan kemudian mengeluarkannya secara langsung.
2. Gunakan fungsi array_column
Fungsi array_column PHP boleh mengekstrak terus lajur daripada tatasusunan dua dimensi tanpa menulis gelung sendiri. Berikut ialah kod sampel:
$array = array( array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'), array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'), array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'), ); $columns = array('name', 'age'); $result = array_column($array, $columns[0]); for($i=1; $i<count($columns); $i++){ $temp = array_column($array, $columns[$i]); $result = array_map(null, $result, $temp); } foreach($result as $value){ echo $value[0]." ".$value[1]."<br/>"; }
Di sini kami juga mentakrifkan tatasusunan dua dimensi $array dan lajur menjadi $lajur keluaran. Dengan memanggil fungsi array_column, anda boleh mendapatkan terus nilai semua lajur nama daripada $array, dan kemudian menggunakan fungsi array_map untuk menggabungkan nilai berbilang lajur ke dalam tatasusunan dua dimensi $result. Akhir sekali, keluarkan setiap baris data dalam $result melalui gelung foreach.
3. Gunakan fungsi array_reduce
Kaedah pelaksanaan lain ialah menggunakan fungsi array_reduce PHP. Fungsi array_reduce menggabungkan tatasusunan menjadi nilai dan sering digunakan untuk operasi seperti menjumlahkan tatasusunan atau mengira nilai maksimum. Berikut ialah kod sampel:
$array = array( array('id'=>1, 'name'=>'张三', 'age'=>18, 'address'=>'北京'), array('id'=>2, 'name'=>'李四', 'age'=>20, 'address'=>'上海'), array('id'=>3, 'name'=>'王五', 'age'=>22, 'address'=>'广州'), ); $result = array_reduce($array, function($carry, $item){ return array($carry[0]." ".$item['name'], $carry[1]." ".$item['age']); }, array('','')); echo $result[0]."<br/>"; echo $result[1]."<br/>";
Di sini kami juga mentakrifkan tatasusunan dua dimensi $array. Dengan memanggil fungsi array_reduce, nama dan maklumat umur dalam setiap tatasusunan satu dimensi $item digabungkan menjadi tatasusunan satu dimensi $carry. Akhir sekali, keluarkan hasil gabungan.
Ringkasan:
Tiga kaedah di atas boleh mengalih keluar lajur yang ditentukan daripada tatasusunan dua dimensi dan memproses atau mengeluarkannya. Antaranya, lintasan gelung ialah kaedah yang paling biasa, dan fungsi array_column dan array_reduce adalah lebih ringkas dan maju. Dalam pengaturcaraan sebenar, anda boleh memilih kaedah yang paling sesuai untuk beroperasi mengikut keperluan tertentu.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar beberapa lajur daripada tatasusunan dua dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!