下面是“php array_walk array_map array_filter 区别案例详解”的详细攻略。
什么是数组函数
PHP中提供了很多针对数组的函数,我们可以通过这些函数快速方便地处理和操作数组。常见的数组函数包括:array_walk、array_map和array_filter,这些函数都是用来遍历数组并进行处理的。
array_walk
array_walk函数可用于遍历数组并对每个元素执行回调函数中的操作。函数的格式如下:
bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )
array_walk
函数接收三个参数,分别是要操作的数组、一个可调用的回调函数和可选的用户数据。回调函数将被用来对每个数组元素执行操作。
接下来,请看下面的示例。
// 一个数组
$numbers = [1, 2, 3, 4, 5];
// 使用array_walk给每个元素加上 "元" 字符串
array_walk($numbers, function(&$value) {
$value = $value . '元';
});
// 打印结果
print_r($numbers);
上面的代码将给数组 $numbers
中每个数组元素添加 "元" 字符串,最终数组中的每个元素都会以 "元" 结尾。输出结果为:
Array
(
[0] => 1元
[1] => 2元
[2] => 3元
[3] => 4元
[4] => 5元
)
array_map
array_map函数可用于对一个或多个数组同时执行回调函数中的操作。函数的格式如下:
array array_map ( callable $callback , array ...$arrays )
array_map
函数接收两个及以上参数,第一个参数必须是一个可调用的回调函数。余下的参数都是要处理的数组。回调函数可以访问所有数组中对应位置的元素,然后对它们执行相应的操作。
接下来,我们来看这个示例:
// 两个数组
$numbers1 = [1, 2, 3, 4, 5];
$numbers2 = [10, 20, 30, 40, 50];
// 使用array_map将两个数组中的元素相加
$sum = array_map(function($a, $b) {
return $a + $b;
}, $numbers1, $numbers2);
// 打印结果
print_r($sum);
上面的代码将会把 $numbers1
和 $numbers2
数组中对应位置的元素相加,并存储到 $sum
数组中。输出结果为:
Array
(
[0] => 11
[1] => 22
[2] => 33
[3] => 44
[4] => 55
)
array_filter
array_filter函数可用于过滤数组中的元素,并返回按照条件过滤后的新数组。函数的格式如下:
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
array_filter
函数接收两个及以上参数,第一个参数是要进行过滤操作的数组。第二个参数是可选的回调函数,用于指定过滤条件。如果没有指定回调函数,array_filter
会默认去掉数组中等价于false的元素。
接下来,我们来看这个示例:
// 一个数组
$numbers = [1, 2, 3, 4, 5];
// 使用array_filter过滤出偶数,并将剩下的元素复制到新数组
$newArr = array_filter($numbers, function($value) {
return ($value % 2 == 0);
});
// 打印结果
print_r($newArr);
上面的代码将会过滤 $numbers
数组中的偶数,然后将过滤后的奇数复制到新数组 $newArr
中去。输出结果为:
Array
(
[1] => 2
[3] => 4
)
总结
以上就是关于 array_walk
、array_map
和array_filter
相关的案例详解。array_walk
用于对数组中的每个元素执行指定的操作。array_map
用于处理多个数组中的元素,并按照指定规则进行操作。array_filter
用于根据指定条件过滤数组中的元素。
如果你掌握了这三个函数的使用,你可以利用 PHP 处理各种数据程式,使你的代码更加优美和高效。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php array_walk array_map array_filter区别案例详解 - Python技术站