Sometimes it may seem unclear what the differences are between array_map, array_filter and array_walk, since all three functions allow for altering an array with a callback. You may wish to review the example that I provide of using each at http://stackoverflow.com/questions/3432257/difference-between-array-map-array-walk-and-array-filter/5616767#5616767.
In brief, array_filter is concerned about removing something from an array. In the example, I provided, an array is filtered of any numbers so that only string data remains. Array_map and array_walk can be a little confusing because they have different return values and they have a different order of parameters with respect to the array and callback parameters.
Think of array_walk as allowing you to traverse the array with the option of changing in place each element if you provide a third parameter. The return value will be a boolean so that can be handy if you want to test if things went well.
Array_map is a functional programming type function that allows you to do the same sort of operation on each element of the array. What’s great about this function is that array_map will return a new array reflecting the changes for each array element while the original array is unaffected.