array_map函数简介
PHP中的array_map()函数是用于将一个或多个数组的每个元素都执行相同的回调函数进行映射,返回映射处理后得到的新数组。这个函数常用于对数组进行数据处理和格式化。
语法
array_map(callback,array1,array2…)
callback: 必需。规定被执行的回调函数
array1: 必需。第一个数组。
array2…: 可选。其他数组。数组元素的数量必须和第一个数组的元素数量一致。
示例代码
下面是使用array_map()函数对数组进行映射的示例:
//定义要映射的数组
$arr1 = array("Tom","Jerry","Mickey");
$arr2 = array("cat","mouse","mouse");
//回调函数,将数组中的元素组合成字符串
function merge($s1, $s2){
return $s1." is a ".$s2;
}
//映射处理后返回新数组
$result = array_map("merge",$arr1,$arr2);
//输出新数组
print_r($result);
执行上述代码后,输出结果为:
Array
(
[0] => Tom is a cat
[1] => Jerry is a mouse
[2] => Mickey is a mouse
)
使用array_map()函数对数组进行数据处理
array_map()函数不仅可以进行简单的映射,还可以对数组的元素进行复杂的数据处理。下面是一个将商品价格进行折扣处理的例子:
//定义原始数据
$goods = array(
array('name' => 'iPhone Xs','price' => 7999),
array('name' => 'Samsung S10','price' => 5999),
array('name' => 'HUAWEI Mate 20','price' => 4999)
);
//回调函数,对商品价格进行折扣处理
function discount($item){
$item['price'] = $item['price'] * 0.8;//8折优惠
return $item;
}
//使用array_map对原始数据进行处理
$goods = array_map('discount', $goods);
//输出折扣后的商品信息
print_r($goods);
执行上述代码后,输出结果为:
Array
(
[0] => Array
(
[name] => iPhone Xs
[price] => 6399.2
)
[1] => Array
(
[name] => Samsung S10
[price] => 4799.2
)
[2] => Array
(
[name] => HUAWEI Mate 20
[price] => 3999.2
)
)
使用多个数组进行数据处理
array_map()函数不仅可以对一个数组进行处理,还可以对多个数组进行处理,下面是一个使用两个数组进行数据操作的示例:
//定义原始数据
$arr1 = array(1, 2, 3);
$arr2 = array(4, 5, 6);
//回调函数,将两个数组中的元素进行相加
function add($a, $b) {
return $a + $b;
}
//使用array_map对两个数组进行处理
$result = array_map('add', $arr1, $arr2);
//输出结果
print_r($result);
执行上述代码后,输出结果为:
Array
(
[0] => 5
[1] => 7
[2] => 9
)
使用类方法进行数据处理
除了普通函数外,array_map()函数还可以使用类中的方法进行数据处理,下面是一个使用类方法进行数据处理的示例:
//定义要映射的数组
$arr = array("First", "Second", "Third");
//定义回调函数所在的类
class String{
static function toUpperCase($s){
return strtoupper($s);
}
}
//使用array_map()函数调用类方法
$result = array_map(array('String', 'toUpperCase'),$arr);
//输出结果
print_r($result);
执行上述代码后,输出结果为:
Array
(
[0] => FIRST
[1] => SECOND
[2] => THIRD
)
使用array_map()函数的注意事项
在使用array_map()函数时需要注意以下几点:
传递给array_map()函数的回调函数的参数个数必须与传递给函数的数组数量一致。
可以使用多个数组来进行映射处理,但是这些数组的元素数量必须一致。
回调函数可以是普通函数,类中的静态方法或在当前命名空间中的函数。
回调函数中的参数名称可以任意定义,但是必须按顺序与数组中的元素对应。
array_map()函数处理的数组中的元素可以是任意类型的数据,包括字符串,数字,对象等。
为你推荐
- 2023-07-16php 第三方登录(使用PHP实现第三方登录功能)
- 2023-07-23php dump(PHP变量转储函数:PHP Dump)
- 2023-07-25ctf php反序列化(CTF挑战:通过PHP反序列化实现攻击)
- 2023-09-11php httpget(PHP实现HTTP Get请求)
- 2023-09-15php array_slice(PHP中的数组片段切片方法 – array_slice)
- 2023-07-07php chmod(PHP修改文件权限:chmod)
- 2023-08-01php utf8编码(PHP UTF-8编码实现技巧)
- 2023-09-26php redis连接池(使用PHP Redis连接池优化数据库访问)