array_filter()
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。
- $arr = ['a','b',1,2,3];
-
- });
-
- //返回结果
- //array (size=3)
- // 2 => int 1
- // 3 => int 2
- // 4 => int 3
array_map()
该函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
可以传递多个数组,回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
array_walk()
对数组中的每个元素应用用户自定义函数
- //将数组中的元素用于某种操作
- $arr = ['a','b','c'];
- echo "{$key} is {$val} <br/>";
- });
- //返回结果
- //0 is a
- //1 is b
- //2 is c
-
- //改变数组中的值,传参的时候使用引用
- $val .= $val;
- });
- //array (size=3)
- // 0 => string 'aa' (length=2)
- // 1 => string 'bb' (length=2)
- // 2 => string 'cc' (length=2)
异同点
array_filter() 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时,返回过滤后的数组
array_map() 重点在于遍历一个数组或多个数组的元素,返回一个新的数组
array_walk() 重点在于遍历数组进行某种操作
array_filter() 和 array_walk()对一个数组进行操作,数组参数在前,函数参数在后
array_map() 可以处理多个数组,因此函数参数在前,数组参数在后,可以根据实际情况放入多个数组参数