Dalam PHP, tatasusunan ialah struktur data biasa yang boleh digunakan untuk menyimpan berbilang nilai. Dalam sesetengah senario aplikasi, kita perlu menjumlahkan tatasusunan bersarang Dalam kes ini, kita perlu menggunakan algoritma penjumlahan rekursif tatasusunan.
Idea algoritma penjumlahan rekursif adalah untuk merentasi setiap elemen dalam tatasusunan Jika elemen itu ialah tatasusunan, panggil sendiri secara rekursif untuk mengira jumlah tatasusunan kepada jumlah.
Berikut ialah sekeping kod PHP yang melaksanakan algoritma jumlah rekursif:
function array_sum_recursive($arr) { $sum = 0; foreach ($arr as $value) { if (is_array($value)) { $sum += array_sum_recursive($value); } else { $sum += $value; } } return $sum; }
Fungsi ini menerima tatasusunan sebagai parameter dan mengembalikan jumlah semua elemen tatasusunan. Ia mula-mula menetapkan jumlah kepada 0 dan kemudian berulang melalui setiap elemen dalam tatasusunan. Untuk setiap elemen, ia mula-mula menyemak sama ada ia adalah tatasusunan, dan jika ya, ia memanggil dirinya secara rekursif untuk mengira jumlah tatasusunan ini, jika tidak, ia menambah nilai elemen kepada jumlah itu. Akhirnya pulangkan jumlahnya.
Berikut ialah beberapa contoh penggunaan fungsi ini:
$arr1 = array(1, 2, 3, 4, 5); echo array_sum_recursive($arr1); // 输出 15 $arr2 = array(1, 2, array(3, 4, 5), 6, 7); echo array_sum_recursive($arr2); // 输出 28 $arr3 = array(array(1, 2, 3), array(4, 5), array(6, 7, 8, 9)); echo array_sum_recursive($arr3); // 输出 45
Seperti yang anda lihat, tidak kira betapa bersarang tatasusunan, fungsi ini boleh mengira jumlahnya dengan betul.
Dalam aplikasi praktikal, algoritma penjumlahan rekursif boleh digunakan dalam banyak senario, seperti mengira bilangan nod dalam struktur pepohon, mengira jumlah semua nilai dalam senarai bersarang berbilang lapisan, dsb. . Menguasai algoritma penjumlahan rekursif boleh membantu kami mengendalikan struktur data yang kompleks ini dengan lebih baik dan meningkatkan kecekapan dan fleksibiliti program.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan penjumlahan rekursif tatasusunan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!