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

Bagaimana untuk Menjumlahkan Nilai Lajur dengan Cekap dalam Tatasusunan PHP Berbilang Dimensi?

Patricia Arquette
Lepaskan: 2024-12-29 17:05:11
asal
648 orang telah melayarinya

How to Efficiently Sum Column Values in Multi-Dimensional PHP Arrays?

Cara Menjumlahkan Nilai Lajur dalam Tatasusunan Berbilang Dimensi

Dalam tatasusunan berbilang dimensi, meringkaskan nilai sepanjang lajur ialah tugas biasa. Begini caranya, dengan mengambil kira cabaran set kunci bersekutu dinamik:

Penyelesaian Kes Umum dengan array_walk_recursive

Menggunakan array_walk_recursive, anda boleh meringkaskan lajur secara konsisten tanpa mengira kunci struktur:

$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() for Exact Keys

Dari PHP 5.5 dan seterusnya, anda boleh menggunakan array_column untuk meringkaskan lajur tertentu dengan cekap:

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

Jumlah Jumlah untuk Semua Kunci Set

Jika anda mahukan jumlah agregat semua tatasusunan dalam dengan kekunci yang sepadan (seperti dalam output yang diingini), gunakan pendekatan ini:

$final = array_shift($input);

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

unset($value);
Salin selepas log masuk

Kes Umum Penyelesaian dengan array_column

Pendekatan yang lebih maju menggunakan array_column melibatkan mengenal pasti semua kunci unik dan kemudian meringkaskan:

$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 dengan Cekap 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan