Bagaimana untuk Menghimpunkan Baris Tatasusunan 2D mengikut Lajur Tunggal dan Mengagregatkan Lajur Lain dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-10-26 00:19:28
asal
480 orang telah melayarinya

How to Group 2D Array Rows by a Single Column and Aggregate Another Column in PHP?

Mengumpulkan Baris Tatasusunan 2D mengikut Lajur Tunggal dan Mengagregatkan Lajur Lain

Memandangkan tatasusunan PHP yang mengandungi baris 2D dengan lajur tertentu, tugas biasa ialah mengumpulkan baris berdasarkan pada lajur tertentu dan agregat nilai dari lajur lain.

Sebagai contoh, pertimbangkan tatasusunan berikut:

<code class="php">[
    ['url_id' => 2191238, 'time_spent' => 41],
    ['url_id' => 2191606, 'time_spent' => 215],
    ['url_id' => 2191606, 'time_spent' => 25]
]</code>
Salin selepas log masuk

Matlamatnya adalah untuk mengira jumlah lajur "masa_dibelanjakan" untuk setiap nilai unik dalam lajur "url_id". Satu penyelesaian yang mungkin melibatkan penggunaan gelung untuk mengulangi tatasusunan:

<code class="php">$ts_by_url = array();
foreach($array as $data) {
    if(!array_key_exists($data['url_id'], $ts_by_url))
        $ts_by_url[ $data['url_id'] ] = 0;
    $ts_by_url[ $data['url_id'] ] += $data['time_spent'];
}</code>
Salin selepas log masuk

Selepas memproses keseluruhan tatasusunan, tatasusunan $ts_by_url akan mengandungi jumlah "masa_dibelanjakan" untuk setiap "url_id" unik:

<code class="php">2191238 => 41
2191606 => 240 // == 215 + 25</code>
Salin selepas log masuk

Pendekatan ini mengumpulkan baris secara berkesan mengikut "url_id" dan mengagregatkan nilai "time_spent". Ia memanfaatkan sifat tatasusunan bersekutu PHP untuk menyimpan dan mengemas kini nilai dengan cekap berdasarkan kekunci "url_id".

Atas ialah kandungan terperinci Bagaimana untuk Menghimpunkan Baris Tatasusunan 2D mengikut Lajur Tunggal dan Mengagregatkan Lajur Lain dalam PHP?. 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
Artikel terbaru oleh pengarang
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!