<?php
//用回调函数操作数组
//1.array_filter($array,callback)将数组元素依次传入到回调函数中处理
// 将数组中的值依次逐个传入到回调函数中处理,只有处理结果为true的元素才允许出现在结果数组中
$arr = [1,2,3,4,5,6,7,8,9];
//首先写好两个处理函数
function odd($n){
return $n%2==1;
}
function even($n){
return $n%2==0;
}
$newArr = array_filter($arr,'even');
echo '<pre>';
print_r($newArr);
// 2.array_walk($array,callback)
// 功能:1.遍历数组 2.更新元素 不返回新数组 更多时候是用于使用回掉函数影响到原数组中的值
$arr = ['name'=>'peter','age'=>28,'sex'=>'male'];
//遍历数组
function printArr($value,$key){
echo '我的',$key,'是:',$value,'<br>';
}
array_walk($arr,'printArr');
//修改数组
function alterArr(&$value,$key,$suffix){
$value.=$suffix;
}
//在调用回调函数的时候传入第三个参数
array_walk($arr,'alterArr','_Php');
echo '<hr>';
//遍历修改后的数组
array_walk($arr,'printArr');
// 3.array_map(callback,$arr1,$arr2...)
// 将回调函数作用到每个数组上,并返回一个新数组:默认索引数组
// 回调函数的参数数量,必须与要处理的数组的数量一致
$arr = [1,2,3,4,5];
//创建一个回调函数
$func = function($value){
return $value*2;
};
$newArr = array_map($func,$arr);
print_r($newArr);
$area = ['北京','天津','南京','深圳','广州'];
$func = function($value1,$value2){
return '第'.$value1.'个元素是'.$value2;
};
$newArr = array_map($func,$arr,$area);
print_r($newArr);
?>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号