### [使用PHP的array_walk_recursive()函数对多维数组中的每个元素执行回调函数](https://www.prosaas.cn/article/11437) **Published:** 2023-11-04T05:24:30 **Author:** 5201314 **Excerpt:** PHP中的array_walk_recursive()函数可以对多维数组中的每个元素进行遍历,并调用指定的回调… ![20231212160709119](https://zhiqipro.oss-cn-beijing.aliyuncs.com/2023/11/20231212160709119.jpg "20231212160709119") PHP中的array\_walk\_recursive()函数可以对多维数组中的每个元素进行遍历,并调用指定的回调函数对其进行操作。本文将通过具体的代码示例来演示如何使用该函数。 首先,让我们创建一个多维数组,用于演示array\_walk\_recursive()函数的使用。数组中包含了一些学生的信息,如姓名、年龄和成绩。代码如下: $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), ), ); 接下来,我们定义一个回调函数,用于将学生的成绩平均值添加到每个学生的信息中。代码如下: function calculateAverage(&$value, $key) { if ($key === 'scores') { $average = array\_sum($value) / count($value); $value\['average'\] = $average; } } 在上述回调函数中,我们首先判断当前元素的键是否为'scores',如果是,则计算该学生的成绩平均值,并将其添加到该学生的信息数组中。 最后,我们可以使用array\_walk\_recursive()函数来遍历多维数组,并对每个元素调用我们定义的回调函数。代码如下: array\_walk\_recursive($students, 'calculateAverage'); 执行上述代码后,$students数组中的每个学生的信息将会被添加一个'average'键,该键对应着该学生的成绩平均值。我们可以通过打印数组来验证结果。代码如下: print\_r($students); 输出结果如下: 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 ) ) ) 可以看到,每个学生的成绩平均值都被成功地添加到了对应的学生信息数组中。 总结:本文通过具体的代码示例介绍了如何使用PHP的array\_walk\_recursive()函数对多维数组中的每个元素执行回调函数。通过以上示例,我们可以灵活地对多维数组进行遍历和操作,实现各种需要的功能。 以上就是使用PHP的array\_walk\_recursive()函数对多维数组中的每个元素执行回调函数的详细内容,更多请关注知企PROSAAS其它相关文章! **Tags:** php, 回调函数, 多维数组 **Categories:** 后端开发 ---