array_map(function($v){
//pass
}, $array);
array_walk($array, function($v, $k){
//pass
});
array_filter($array, function($v){
//pass
});
相同点:都是利用回调函数对数组中每个元素进行操作
不同点:
返回值
回调函数的参数
是否改变数组的值
array_map 返回的是新数组,原数组不变(新数组和原数组的数组长度应该一样)。
array_walk 返回的布尔值,如果要改变数组元素的值,回调函数第一个参数必须是引用,如 array_walk(KaTeX parse error: Expected 'EOF', got '&' at position 17: …rray, function(&̲v, $k){}); , arrary_walk 的回调函数还能够接收数组的key。
http://www.runoob.com/php/func-array-walk.html
array_filter 返回的是新数组,原数组不变。它的作用是过滤数组中的元素。回调函数返回真,元素才能保存到新数组中,即(新数组和原数组的数组长度可能不一样)
总结:
array_map 对参数数组的每个元素进行操作,返回新数组,不改变原数组的值
array_walk 对参数数组的每个元素进行操作,返回布尔,可以改变原数组的值。
array_filter 对参数数组的元素进行过滤,返回新数组,不改变原数组的值。