Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menghimpun dan Menjumlahkan Lajur dalam Tatasusunan PHP 2D?

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

Linda Hamilton
Lepaskan: 2024-10-26 04:06:27
asal
691 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!

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