Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menghimpun dan Menjumlahkan Lajur dalam Tatasusunan PHP 2D?
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>
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>
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!