批改状态:合格
老师批语:不错, 就是案例不是太好, 但目前你们暂时可能想不到更合适的可以理解
返回的是新数组,原数组不变
它的作用是每次传入一个元素到回调函数内进行判断,把返回true的保存到新数组中
新数组和原数组的数组长度可能不一样
array_filter(array,func,[flag])
| 参数 | 描述 |
|---|---|
| array | 必须,规定使用的数组 |
| func | 必须,用于过滤数组的回调函数,返回值是布尔型 |
| flag | 可选,决定func接收的参数形式 |
| ARRAY_FILTER_USE_KEY 接受键名作为的唯一参数 | |
| ARRAY_FILTER_USE_BOTH 同时接受键名和键值 |
$array=['aes1','aes2','a'=>'a3','y2'=>'aes4','a5','aes'=>'ab6'];//如果键值内容包含指定的字符串返回truefunction func($var){if (strpos($var,'aes')===false):return false;else:return true;endif;}$arr=array_filter($array,"func");printf('<pre>%s</pre><hr>',print_r($arr,true));//只对键名进行过滤$arr=array_filter($array,"func",ARRAY_FILTER_USE_KEY);printf('<pre>%s</pre><hr>',print_r($arr,true));-------------------------------//输出结果Array([0] => aes1[1] => aes2[y2] => aes4)Array([aes] => ab6)
返回的是新数组,原数组不变
它的作用是每次传入一个元素到回调函数内,把回调函数的返回值存入到新数组内,可以多个数组同时传入
新数组和原数组的数组长度应该一样
array_map( func, array1,[array2...])
| 参数 | 描述 |
|---|---|
func |
必须,用于接收数组的回调函数,可以自定义返回值,返回值会存入新数组 |
array1 |
必须,规定使用的数组 |
array... |
可选,规定使用的数组 |
$array1=['孙悟空','猪八戒','沙和尚','唐生'];$array2=['金箍棒','九齿钉耙','月牙铲','九锡禅杖'];function func($a,$b){return '<font color="red">'.$a.'</font>使用的兵器是<font color="gray">'.$b.'</font>';}$arr=array_map("func",$array1,$array2);printf('<pre>%s</pre><hr>',print_r($arr,true));-------------------------------//输出结果Array([0] => 孙悟空使用的兵器是金箍棒[1] => 猪八戒使用的兵器是九齿钉耙[2] => 沙和尚使用的兵器是月牙铲[3] => 唐生使用的兵器是九锡禅杖)
返回布尔值,如果要改变数组元素的值,回调函数第一个参数必须是引用
arrary_walk 的回调函数能够接收数组的键名
array_walk(array,func,[data])
| 参数 | 描述 |
|---|---|
array |
必须,规定使用的数组 |
func |
必须,用于接收数组元素的回调函数,参数1键值,参数2键名,参数3data |
data |
可选,传入func的第三个参数 |
$array = ['a' => ['title' => '推荐', 'code' => 1],'b' => ['title' => '搞笑', 'code' => 1],'c' => ['title' => '奇闻', 'code' => 2]];//修改数组键名为'a'和'c'的元素内'code'的值function func(&$a, $b, $c){switch ($b):case 'a';$a['code'] = $c;break;case 'c';$a['code'] = 123;endswitch;}array_walk($array, "func", 789);printf('<pre>%s</pre><hr>', print_r($array, true));-------------------------------//输出结果Array([a] => Array([title] => 推荐[code] => 789)[b] => Array([title] => 搞笑[code] => 1)[c] => Array([title] => 奇闻[code] => 123))
发送数组中的值到用户自定义函数,并返回一个字符串
如果数组是空的或者初始值未传递,该函数返回 NULL
array_reduce(array,func,[data])
| 参数 | 描述 |
|---|---|
array |
必需,规定数组 |
func |
必需,规定函数的名称,参数1,首次调用可接收int的值,之后接收函数自身返回值,参数2,数组的键值 |
data |
可选,规定发送到函数处理的第一个值 |
$array = ['张三','李四','王五','豆豆','杨杨','小花','小猪'];function func($a, $b){global $int;$int++;return $a.$int.'.'.$b.'<br>';}$arr=array_reduce($array, "func");printf('<pre>%s</pre><hr>', print_r($arr, true));-------------------------------//输出结果1.张三2.李四3.王五4.豆豆5.杨杨6.小花7.小猪
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号