Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengira Jumlah Lajur dengan Cekap dalam Tatasusunan Berbilang Dimensi Tidak Sekata?

Bagaimana untuk Mengira Jumlah Lajur dengan Cekap dalam Tatasusunan Berbilang Dimensi Tidak Sekata?

Susan Sarandon
Lepaskan: 2024-12-24 14:45:14
asal
677 orang telah melayarinya

How to Efficiently Calculate Column Totals in Irregular Multi-Dimensional Arrays?

Cara Mengira Jumlah Lajur dalam Tatasusunan Berbilang Dimensi

Pertimbangkan tatasusunan berbilang dimensi di mana unsur-unsur disusun dalam baris dan lajur, tetapi set kunci mungkin berbeza secara dinamik. Tugasnya adalah untuk mengira jumlah nilai dalam setiap lajur, tanpa mengira variasi utama.

Kaedah Array_Walk_Recursive

Untuk penyelesaian umum di mana tatasusunan dalam boleh mempunyai kunci unik, 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 Kaedah

Jika nilai kunci tertentu perlu dijumlahkan, array_column() boleh digunakan:

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

Untuk Tatasusunan Dalaman Seragam

Jika semua tatasusunan dalam mempunyai kunci yang sama, dapatkan kunci permulaan struktur:

$final = array_shift($input);

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

unset($value);
Salin selepas log masuk

Kes Umum dengan Array_Column

Ekstrak kunci unik dan lakukan jumlah lajur:

$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 Mengira Jumlah Lajur dengan Cekap dalam Tatasusunan Berbilang Dimensi Tidak Sekata?. 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