Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mengumpulkan tatasusunan php mengikut nilai yang sama
Tatasusunan PHP ialah jenis data yang sangat biasa digunakan, yang sering digunakan dalam proses pembangunan kami. Dalam pembangunan sebenar, kita sering menghadapi situasi di mana kita perlu mengumpulkan berdasarkan nilai yang sama dalam tatasusunan, jadi bagaimana untuk melaksanakan ini?
Dalam PHP, kita boleh menggunakan array_column(), array_multisort() dan fungsi lain untuk mengisih dan mengumpulkan tatasusunan. Mari kita lihat beberapa kaedah pelaksanaan khusus.
Pertama, kita boleh menggunakan fungsi array_column() , yang boleh mengeluarkan kunci daripada tatasusunan Nilai yang sepadan juga dikembalikan sebagai tatasusunan. Kita boleh melakukan operasi pengelompokan berdasarkan tatasusunan yang dikembalikan oleh fungsi array_column(), yang merupakan koleksi nilai yang sama.
Kaedah pelaksanaan khusus adalah seperti berikut:
<code class="php"><?php // 定义一个数组 $arr = array( array('id'=>1, 'name'=>'张三', 'age'=>18), array('id'=>2, 'name'=>'李四', 'age'=>20), array('id'=>3, 'name'=>'张三', 'age'=>22), array('id'=>4, 'name'=>'王五', 'age'=>25), array('id'=>5, 'name'=>'赵六', 'age'=>20), ); // 获取相同值的键名 $key_arr = array_column($arr, 'name'); // 分组操作 $res = array(); foreach($key_arr as $k=>$v) { $res[$v][] = $arr[$k]; } print_r($res); ?></code>
Dalam kod di atas, kami mentakrifkan tatasusunan yang mengandungi berbilang keping data. Kemudian, kami menggunakan fungsi array_column() untuk mendapatkan semula nilai yang sepadan dengan semua kekunci 'nama' dalam data, iaitu, ['Zhang San', 'Li Si', 'Zhang San', 'Wang Wu' , 'Zhao Liu'].
Seterusnya, kami menggunakan gelung foreach untuk melintasi tatasusunan di atas, mengumpulkan data dengan nilai yang sama dan menyimpannya dalam tatasusunan $res. Akhir sekali, tatasusunan $res ialah hasil kumpulan yang kami perlukan.
Kaedah pelaksanaan lain ialah menggunakan fungsi array_multisort() untuk mengisih tatasusunan berbilang dimensi, mengisih data dengan nilai yang sama bersama-sama dan kemudian operasi kumpulan.
Kaedah pelaksanaan khusus adalah seperti berikut:
<code class="php"><?php // 定义一个数组 $arr = array( array('id'=>1, 'name'=>'张三', 'age'=>18), array('id'=>2, 'name'=>'李四', 'age'=>20), array('id'=>3, 'name'=>'张三', 'age'=>22), array('id'=>4, 'name'=>'王五', 'age'=>25), array('id'=>5, 'name'=>'赵六', 'age'=>20), ); // 对数组进行排序 $name_arr = array_column($arr, 'name'); $age_arr = array_column($arr, 'age'); array_multisort($name_arr, SORT_ASC, SORT_STRING, $age_arr, SORT_ASC, SORT_NUMERIC, $arr); // 分组操作 $res = array(); foreach($arr as $k=>$v) { $res[$v['name']][] = $v; } print_r($res); ?></code>
Dalam kod di atas, kami menggunakan fungsi array_column() untuk mendapatkan nilai yang sepadan dengan 'nama' dan 'umur ', dan kemudian gunakan fungsi array_multisort() Isih tatasusunan. Fungsi array_multisort() boleh menerima berbilang parameter tatasusunan, menyusunnya dalam susunan menaik atau menurun mengikut nilai tatasusunan pertama, dan kemudian mengisih tatasusunan lain mengikut susunan tatasusunan pertama. Dalam contoh ini, kami menetapkan $name_arr untuk mengisih dalam tertib menaik dan $age_arr untuk mengisih dalam tertib menaik.
Akhir sekali, kami menggunakan gelung foreach untuk mengumpulkan data dengan nilai yang sama dan menyimpan hasilnya ke dalam tatasusunan $res. Akhir sekali, tatasusunan $res ialah hasil kumpulan yang kami perlukan.
Ringkasan
Dua kaedah di atas boleh merealisasikan operasi mengumpulkan tatasusunan PHP mengikut nilai yang sama. Kaedah yang hendak dipilih untuk pelaksanaan khusus bergantung pada keperluan anda sendiri dan struktur data serta faktor lain. Tidak kira kaedah yang digunakan, kami boleh mencapai klasifikasi dan statistik tatasusunan yang berkesan, dengan itu meningkatkan kecekapan dan kebolehpercayaan pemprosesan data dengan cepat.
Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan tatasusunan php mengikut nilai yang sama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!