批改状态:合格
老师批语:php中的许多函数与js中的很像不是吗? 对比学, 效率更高
array_filter(要处理的数组,回调函数(用于处理数组),默认只接收值/ARRAY_FILTER_USE_BOTH接收键和值/ARRAY_FILTER_USE_KEY只接收键)
echo 'array_filter():用回调函数过滤数组中的单元<br>';// 1、array_filter(要处理的数组,回调函数(用于处理数组),默认只接收值/ARRAY_FILTER_USE_BOTH接收键和值/ARRAY_FILTER_USE_KEY只接收键)$arr = ['html'=>60,'php'=>70,'js'=>80,'java'=>56,'css'=>45,'c++'=>0,null,false,[],'',0,'0'];// php自动转为false的值: null, false, 空数组, 空字符串, 0, '0'// 提示: 空对象不能转为false, 但是空数组是falseecho '1.过滤数组中小于60的值,仅保留大于等于60的值<br>';// 方式一:代码量少,无法过滤空数组// $res = array_filter($arr,function($item){// return $item>=60;// });// 方式二:代码更严谨,可以过滤空数组$res = array_filter($arr,function($item){if($item>=60){return $item;}});printf('<pre>%s</pre>',print_r($res,true));echo '2.过滤数组中的假值(null,false,空数组,空字符串, 0,"0"都会被转换为false假值)<br>';$res = array_filter($arr);printf('<pre>%s</pre>',print_r($res,true));echo '<hr>';

array_map(回调函数,要处理的数组)
echo 'array_map()为数组的每个元素应用回调函数<br>';echo '1.为数组每个元素执行*2计算<br>';$arr = [1,2,3,4,5];$res=array_map(function($item){return $item*2;},$arr);printf('<pre>%s</pre>',print_r($res,true));// array_map(): 同时处理多个数组echo '2.将两个数组的每个元素一一对应变成键值对<br>';$key = ['html', 'css', 'js'];$values = ['80', '78', '90'];$res = array_map(function($value1, $value2) {return [$value1 => $value2];}, $key, $values);printf('<pre>%s</pre><hr>', print_r($res, true));echo '3.将多个数组的每个元素一一对应变成新数组<br>';$id = ['101', '102', '103'];$name = ['zhang', 'li', 'wang'];$age = [30, 28, 35];$res = array_map(null,$id,$name,$age);printf('<pre>%s</pre>', print_r($res, true));echo '<hr>';


array_reduce(要处理的函数,回调函数)
echo 'array_reduce()用回调函数迭代地将数组简化为单一的值<br>';$arr=[['html'=>80],['css'=>78],['js'=>90]];$res=array_reduce($arr, function($carry, $item){// 获取当前元素的键$key = key($item);// 获取当前元素的值$value = current($item);// 拼装成键值对$carry[$key] = $value;return $carry;});printf('<pre>%s</pre>', print_r($res, true));echo '<hr>';

array_walk(数组, 回调函数,回调的第三个参数(默认值为null))
echo 'array_walk()使用用户自定义函数对数组中的每个元素做回调处理<br>';// array_walk(数组, 回调函数,回调的第三个参数(默认值为null))$arr=['html'=>80,'css'=>78,'js'=>90];echo '1.不传第三个参数<br>';array_walk($arr, function($value, $key) {printf('[ %s ] => [ %s ] <br>',$key,$value);});echo '2.传第三个参数<br>';array_walk($arr, function($value, $key,$userdata) {printf('[ %s ] %s [ %s ] <br>',$key,$userdata,$value);},'======>');

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号