Bagaimana untuk mengumpulkan tatasusunan php mengikut nilai yang sama

PHPz
Lepaskan: 2023-04-14 19:01:14
asal
141 orang telah melayarinya

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.

  1. Gunakan fungsi array_column() untuk mendapatkan nama kunci dengan nilai yang sama

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>
Salin selepas log masuk

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.

  1. Gunakan fungsi array_multisort() untuk mengisih tatasusunan berbilang dimensi

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!