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

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

Patricia Arquette
Patricia Arquetteasal
2024-11-09 09:15:02963semak imbas

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'],
]

Tatasusunan output yang diingini akan be:

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

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);

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!

Kenyataan:
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