文章教程

5.18用回调函数处理数组

9/17/2020 9:31:19 PM 人评论 次浏览

5.18 用回调函数处理数组

PHP支持回调函数操作给定数组的元素上,这也是PHP数组函数的强大功能之一。函数array_map()就可以完成这样的工作,它将回调函数作用到给定数组的元素上,其语法如下。


array array_map(callback_func, array $arr1 [, array ...])

函数array_map()返回一个数组,该数组包含了参数$arr1中的所有元素经过函数callback_func()处理之后的元素。callback接受参数的数目应该和传递给array_map()函数的数组数目一致。代码5.29演示了该函数的用法。

代码5-29 使用回调函数处理数组元素5-29.php


     01 <?php
     02 function cube($n)                               //
定义函数cube()
     03 {
     04     $cb = $n*$n*$n;
     05     return $cb;
     06 }
     07 
     08 $a = array(1, 2, 3, 4, 5);
     09 $b = array_map("cube", $a);                     //
通过回调函数处理数组$a
     10 
     11 echo '
计算原数组各元素的立方,结果如下:';
     12 echo '<br/>';
     13 echo '<pre>';
     14 
     15 print_r($b);
     16 ?>

图5-29 使用回调函数处理数组元素

【代码解析】代码第02~06行首先定义了一个函数cube(),其功能是计算某个数字的立方值。然后在第09行,程序调用函数array_map(),将函数cube()作用于数组$a的每一个元素,也就是为其每个元素做立方值的计算,最后将函数array_map()的返回值数组输出到页面。程序5-29.php的执行结果如图5-29所示。

教程类别