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