Fungsi array_walk_recursive() dalam PHP boleh merentasi setiap elemen dalam tatasusunan berbilang dimensi dan memanggil fungsi panggil balik yang ditentukan untuk beroperasi padanya. Artikel ini akan menunjukkan cara menggunakan fungsi ini melalui contoh kod tertentu.
Pertama, mari kita cipta tatasusunan berbilang dimensi untuk menunjukkan penggunaan fungsi array_walk_recursive(). Tatasusunan mengandungi beberapa maklumat pelajar, seperti nama, umur dan gred. Kodnya adalah seperti berikut:
$students = array( array( 'name' => '张三', 'age' => 18, 'scores' => array(80, 85, 90), ), array( 'name' => '李四', 'age' => 19, 'scores' => array(75, 78, 82), ), array( 'name' => '王五', 'age' => 20, 'scores' => array(90, 95, 88), ), );
Seterusnya, kami mentakrifkan fungsi panggil balik yang menambahkan purata skor pelajar kepada setiap maklumat pelajar. Kodnya adalah seperti berikut:
function calculateAverage(&$value, $key) { if ($key === 'scores') { $average = array_sum($value) / count($value); $value['average'] = $average; } }
Dalam fungsi panggil balik di atas, kami mula-mula menentukan sama ada kunci elemen semasa ialah 'skor' Jika ya, hitung purata skor pelajar dan tambahkannya pada tatasusunan maklumat pelajar.
Akhir sekali, kita boleh menggunakan fungsi array_walk_recursive() untuk melintasi tatasusunan berbilang dimensi dan memanggil fungsi panggil balik yang kami takrifkan untuk setiap elemen. Kod tersebut adalah seperti berikut:
array_walk_recursive($students, 'calculateAverage');
Selepas melaksanakan kod di atas, kunci 'purata' akan ditambahkan pada setiap maklumat pelajar dalam tatasusunan $pelajar, yang sepadan dengan purata skor pelajar. Kita boleh mengesahkan hasilnya dengan mencetak tatasusunan. Kodnya adalah seperti berikut:
print_r($students);
Hasil keluaran adalah seperti berikut:
Array ( [0] => Array ( [name] => 张三 [age] => 18 [scores] => Array ( [0] => 80 [1] => 85 [2] => 90 [average] => 85 ) ) [1] => Array ( [name] => 李四 [age] => 19 [scores] => Array ( [0] => 75 [1] => 78 [2] => 82 [average] => 78.33333333333333 ) ) [2] => Array ( [name] => 王五 [age] => 20 [scores] => Array ( [0] => 90 [1] => 95 [2] => 88 [average] => 91 ) ) )
Dapat dilihat bahawa purata markah setiap pelajar telah berjaya ditambahkan pada tatasusunan maklumat pelajar yang sepadan.
Ringkasan: Artikel ini memperkenalkan melalui contoh kod khusus cara menggunakan fungsi array_walk_recursive() PHP untuk melaksanakan fungsi panggil balik pada setiap elemen dalam tatasusunan berbilang dimensi. Melalui contoh di atas, kita boleh melintasi dan mengendalikan tatasusunan berbilang dimensi secara fleksibel untuk mencapai pelbagai fungsi yang diperlukan.
Atas ialah kandungan terperinci Gunakan fungsi array_walk_recursive() PHP untuk melaksanakan fungsi panggil balik pada setiap elemen dalam tatasusunan berbilang dimensi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!