Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menjumlahkan Nilai Lajur dengan Cekap dalam Tatasusunan PHP Berbilang Dimensi?
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!