array array_map ( callable $callback , array $arr1 [, array $... ] )
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。
callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
代码如下 | 复制代码 |
function fun($n) { return $n * $n * $n; } $a = array(1, 2, 3, 4, 5); array_map('unlink', glob('*.txt'));/* glob返回"文件名.txt"组成的数组,然后对每个文件进行删除操作*/ array_map('unlink', glob('*.*')); array_map('unlink', glob('*')); |
如果不使用array_map(),对数组每个单元进行操作就只能遍历然后适当组装。
再看个例子
代码如下 | 复制代码 |
//单个数组使用的例子 $websites=array("g"=>"google","b"=>"baidu","y"=>"yahoo"); //输出原数组 echo "<pre>"; print_r($websites); echo "</pre>"; //定义对单个数组处理的回调函数 function change_value($value){ return ucfirst($value).".com"; } $urls=array_map('change_value',$websites); echo "<pre>"; print_r($urls); echo "</pre>"; //多个数组使用的例子 $arr1=array(1,3,5,7); $arr2=array(2,4,6,8); //定义对多个数组处理的回调函数 function func1($a,$b){ return $a*$b; } $results=array_map('func1',$arr1,$arr2); echo "利用回调函数对多个数组处理后,返回的结果:<br>"; echo "<pre>"; print_r($results); echo "</pre>"; |
有朋友不清楚array_walk和array_map的区别,下面我简单的介绍一下
map主要是为了得到你的回调函数处理后的新数组,要的是结果。
walk主要是对每个参数都使用一次你的回调函数,要的是处理的过程。
时间: 2024-10-01 04:23:52