Bagaimana untuk Menghimpun dan Menjumlahkan Lajur dalam Tatasusunan PHP 2D?

Linda Hamilton
Lepaskan: 2024-10-26 04:06:27
asal
549 orang telah melayarinya

How to Group and Sum Columns in a 2D PHP Array?

Mengumpul dan Menjumlahkan Lajur dalam Tatasusunan 2D

Tugasnya adalah untuk memproses tatasusunan data PHP, di mana setiap elemen mewakili satu baris, dan setiap baris terdiri daripada dua lajur: url_id dan time_spent. Matlamatnya adalah untuk mengumpulkan baris mengikut lajur url_id dan menjumlahkan nilai dalam lajur time_spent untuk setiap kumpulan.

Penyelesaian:

Kita boleh menggunakan array_count_values() PHP fungsi untuk mencapai ini:

<code class="php">$ts_by_url = array_count_values(array_column($array, 'url_id'));</code>
Salin selepas log masuk

Fungsi array_column() mengekstrak lajur url_id daripada tatasusunan input, menghasilkan tatasusunan nilai url_id. Fungsi array_count_values() kemudian mengira kejadian setiap nilai url_id, mengumpulkan baris dengan berkesan.

Walau bagaimanapun, penyelesaian ini hanya menyediakan kiraan kejadian untuk setiap url_id. Untuk menjumlahkan nilai time_spent dalam setiap kumpulan, kita perlu mengubah suai pendekatan:

<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

Dalam pendekatan yang dikemas kini ini, kami mengekalkan tatasusunan $ts_by_url yang akan menyimpan jumlah nilai time_spent untuk setiap url_id. Kami beralih melalui tatasusunan input, menyemak setiap baris jika url_id yang sepadan sudah ada dalam $ts_by_url. Jika tidak, kami memulakannya dengan nilai 0. Walau apa pun, kami menambah nilai time_spent pada entri url_id yang sepadan dalam $ts_by_url.

Pendekatan ini membolehkan kami mengumpulkan baris mengikut url_id dan menjumlahkan nilai time_spent untuk setiap kumpulan. Tatasusunan $ts_by_url yang terhasil akan mengandungi jumlah yang dikehendaki, dikunci oleh url_id.

Atas ialah kandungan terperinci Bagaimana untuk Menghimpun dan Menjumlahkan Lajur dalam Tatasusunan PHP 2D?. 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!