批改状态:合格
老师批语:如果图中的函数能掌握80%就很厉害了

array_filter 用回调函数过滤数组中的单元
## array_filter// 返回数组中后缀名为.jpg 的图片$image = ['web.png','name.gif','item.jpg','kk.pgf','vv.jpg'];$image = array_filter($image,function($arr){return pathinfo($arr)['extension'] === 'jpg';});print_r($image);// 输出 Array ( [2] => item.jpg [4] => vv.jpg )// 索引进行重排sort($image);print_r($image);// 输出 Array ( [0] => item.jpg [1] => vv.jpg )
arrtay_map 为数组的每个元素应用回调函数进行处理,返回新数组
## array_map// 将数组进行拉平$res = [[1,2,3],1,2,(new class{public $name='中国'; public $gps='亚洲';})];// printf('<pre>%s</pre>',print_r($res,true));$arr = array_map(function($item){switch (gettype($item)) {case 'object':$item = get_object_vars($item);case 'array':$item =implode(',',$item);}return $item;},$res);printf('<pre>%s</pre>',print_r($arr,true));// 输出 Array// (// [0] => 1,2,3// [1] => 1// [2] => 2// [3] => 中国,亚洲// )
array_work 使用用户自定义函数对数组中的每个元素做回调处理
// array_walk()$res =['id'=>'101','name'=>'machael','age'=>'15'];array_walk($res,function($item,$key){echo $key .' = '.$item .'<br>';});// 输出// id = 101// name = machael// age = 15
array_reduce 发送数组中的值到用户自定义函数,并返回一个字符串
## array_reduce$arr = null;$arr[] = ['id'=>'101','name'=>'machael','age'=>'15'];$arr[] = ['id'=>'102','name'=>'mach','age'=>'16'];$arr[] = ['id'=>'103','name'=>'maael','age'=>'18'];// printf('<pre>%s</pre>',print_r($arr,true))// 获取当期二维数组中每个id的值$arr = array_reduce($arr,function($res,$item){return $res.','.$item['id'];});printf('<pre>%s</pre>',print_r($arr,true));//输出结果 ,101,102,103// 求和$num = [1,2,3,4];$sum = array_reduce($num,function($a,$b){return $a + $b;});printf('<pre>%s</pre>',print_r($sum,true));// 输出结果 10// 合并两个数组$a = ['name','id','password'];$b = ['machiel','101','123456'];// 合并$res = array_map(function($arr_a,$arr_b){return [$arr_a => $arr_b];},$a,$b);// 二维转一维$res = array_reduce($res,function($arr,$item){$key = key($item);$current = current($item);$arr[$key] = $current;return $arr;});printf('<pre>%s</pre>',print_r($res,true));// 输出 Array// (// [name] => machiel// [id] => 101// [password] => 123456// )
array_slice 从数组中取出一部分
// array_slice()// array_slice(数组名,索引‘从0开始’,步长,是否保留原键名默认flase不保存)$arr = ['red','green','yellow','blank','blue'];// 取出第三个$slice = array_slice($arr,2,1,true);print_r($slice);// 输出 Array ( [2] => yellow )
array_splice 去掉数组中一部分并用其他值代替
// array_splice()// array_splice(数组名,索引,步长,替换值)// 将第一个替换为whitearray_splice($arr,0,1,'white');printf('<pre>%s</pre>',print_r($arr,true));// 输出// Array// (// [0] => white// [1] => green// [2] => yellow// [3] => blank// [4] => blue// )
array_filter 重点在于过滤某个元素,返回过滤后的数组array_walk 遍历数组进行某种操作array_map 遍历一个或多个数组,返回一个新数组,函数在前,可以放入多个数组
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号