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
Lepaskan: 2024-12-27 09:40:12
asal
546 orang telah melayarinya

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
        )
)
Salin selepas log masuk

Hasil yang diinginkan ialah:

Array
(
    [gozhi] => 10
    [uzorong] => 1
    [ngangla] => 8
    [langthel] => 10
)
Salin selepas log masuk

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;
});
Salin selepas log masuk

array_column()

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

array_sum(array_column($input, 'gozhi'));
Salin selepas log masuk

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan