Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menjumlahkan Nilai Lajur dalam Tatasusunan PHP Berbilang Dimensi?

Bagaimana untuk Menjumlahkan Nilai Lajur dalam Tatasusunan PHP Berbilang Dimensi?

DDD
DDDasal
2024-12-27 09:40:12489semak imbas

How to Sum Columnar Values in Multi-Dimensional PHP Arrays?

Menambah Nilai Lajur dalam Tatasusunan Berbilang Dimensi

Anda mensasarkan untuk menjumlahkan nilai yang dikaitkan dengan kunci tertentu dalam tatasusunan berbilang dimensi dengan set kunci yang berbeza-beza. Pertimbangkan input berikut:

Array
(
    [0] => Array
        (
            [gozhi] => 2
            [uzorong] => 1
            [ngangla] => 4
            [langthel] => 5
        )

    [1] => Array
        (
            [gozhi] => 5
            [uzorong] => 0
            [ngangla] => 3
            [langthel] => 2
        )

    [2] => Array
        (
            [gozhi] => 3
            [uzorong] => 0
            [ngangla] => 1
            [langthel] => 3
        )
)

Hasil yang diinginkan ialah:

Array
(
    [gozhi] => 10
    [uzorong] => 1
    [ngangla] => 8
    [langthel] => 10
)

Untuk mencapainya, pertimbangkan pendekatan berikut:

array_walk_recursive()

Untuk penyelesaian kes umum, gunakan array_walk_recursive():

$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});

array_column()

Untuk kunci tertentu (cth., "gozhi"), gunakan array_column() (tersedia sejak PHP 5.5):

array_sum(array_column($input, 'gozhi'));

Untuk Tatasusunan dengan Kekunci Sama

Jika semua tatasusunan dalam mempunyai kunci yang sama:

$final = array_shift($input);

foreach ($final as $key => &$value){
   $value += array_sum(array_column($input, $key));
}    

unset($value);

Penyelesaian Kes Umum dengan array_column()

Dapatkan semua kunci unik dan kemudian jumlahkan untuk setiap satu:

$final = array();

foreach($input as $value)
    $final = array_merge($final, $value);

foreach($final as $key => &$value)
    $value = array_sum(array_column($input, $key));

unset($value);

Atas ialah kandungan terperinci Bagaimana untuk Menjumlahkan Nilai Lajur dalam Tatasusunan PHP Berbilang Dimensi?. 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