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

Patricia Arquette
Lepaskan: 2024-11-09 09:15:02
asal
897 orang telah melayarinya

How to Group and Sum Data in a 2D Array by Column in PHP?

Kumpulkan dan Jumlahkan Data Tatasusunan 2D mengikut Lajur

Dalam senario pengaturcaraan ini, objektifnya adalah untuk mengumpulkan baris tatasusunan 2D mengikut satu lajur nilai (cth., 'dd') dan seterusnya jumlahkan nilai lajur lain ('kuantiti') dalam setiap kumpulan. Hasilnya ialah tatasusunan 2D yang dikurangkan dengan nilai 'dd' unik dan maklumat kuantiti terkumpul.

Contoh:

Pertimbangkan tatasusunan input berikut:

[
    ['quantity' => 5,  'dd' => '01-Nov-2012'],
    ['quantity' => 10, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 4,  'dd' => '03-Nov-2012'],
    ['quantity' => 15, 'dd' => '03-Nov-2012'],
]
Salin selepas log masuk

Tatasusunan output yang diingini akan be:

[
    ['quantity' => 15, 'dd' => '01-Nov-2012'],
    ['quantity' => 3,  'dd' => '02-Nov-2012'],
    ['quantity' => 19, 'dd' => '03-Nov-2012'],
]
Salin selepas log masuk

Penyelesaian menggunakan PHP:

Untuk mencapai transformasi data ini, kami boleh menggunakan tatasusunan terbina dalam PHP dan keupayaan gelung:

// Input array
$in = array(array());

// Create output array
$out = array();

// Iterate through input rows
foreach ($in as $row) {
    // Check if 'dd' key exists in output array
    if (!isset($out[$row['dd']])) {
        // Initialize entry for 'dd' with empty quantity
        $out[$row['dd']] = array(
            'dd' => $row['dd'],
            'quantity' => 0,
        );
    }

    // Accumulate quantity for 'dd' key
    $out[$row['dd']]['quantity'] += $row['quantity'];
}

// Adjust output array to numerical indexing
$out = array_values($out);

// Display output array
var_dump($out);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menghimpun dan Menjumlahkan Data dalam Tatasusunan 2D mengikut Lajur 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