Home  >  Article  >  Backend Development  >  Differences between array_map, array_filter and array_walk in php_PHP Tutorial

Differences between array_map, array_filter and array_walk in php_PHP Tutorial

WBOY
WBOYOriginal
2016-07-20 10:59:351013browse

In PHP, the three functions array_map, array_filter, and array_walk all operate on data. Let me introduce the usage and differences of these three functions. ​


array_walk:

array_walk() returns a Boolean value. If the callback function needs to act directly on the values ​​in the array, specify the first parameter of the callback function as a reference. Any changes to these cells will also change the original array itself. This function can obtain the key and value of the array at the same time.

array_map:

array_map() returns an array that contains all the cells in arr1 after callback has been applied. The number of arguments accepted by callback should match the number of arrays passed to the array_map() function.

To put it simply, the callback function will have a final impact on each value in the array, and it will be reflected in the return value of calling array_map.

This function can operate on multiple arrays at the same time. And finally merged into an array (each array is aligned in parallel to the same two-dimensional array according to the subscript).


array_filter:

This function is specifically used for elements in the past array. To put it simply, it filters the values ​​in the array that have been judged by the callback function, and returns the processed array through the array_filter() function.


Therefore, after analyzing this point, we can use array_walk and array_map to do array preprocessing. The most common one is the trim operation on each array value. The following is the author's sample code:

The code is as follows Copy code
 代码如下 复制代码

$tmp = array(' AAAA BBBB CCCC ', 'aaaa bbbb c ', ' dddddd eeeeee');

function array_walk_func(&$v, $k) {
 $v = trim($v);
}
array_walk($tmp, 'array_walk_func');
var_dump($tmp);

function array_map_func($v) {
 return trim($v);
}
$ret = array_map('array_map_func', $tmp);
var_dump($ret);


输出结果:

array(3) {
  [0] =>
  string(14) "AAAA BBBB CCCC"
  [1] =>
  string(11) "aaaa bbbb c"
  [2] =>
  string(13) "dddddd eeeeee"
}
array(3) {
  [0] =>
  string(14) "AAAA BBBB CCCC"
  [1] =>
  string(11) "aaaa bbbb c"
  [2] =>
  string(13) "dddddd eeeeee"
}

$tmp = array(' AAAA BBBB CCCC ', 'aaaa bbbb c ', ' dddddd eeeeee');
function array_walk_func(&$v, $k) {

$v = trim($v);

} var_dump($tmp); function array_map_func($v) { return trim($v); } $ret = array_map('array_map_func', $tmp); var_dump($ret); Output result:
array(3) { [0] => string(14) "AAAA BBBB CCCC"
[1] =>
string(11) "aaaa bbbb c" [2] => string(13) "dddddd eeeeee" } array(3) { [0] => string(14) "AAAA BBBB CCCC" [1] => string(11) "aaaa bbbb c" [2] => string(13) "dddddd eeeeee" }
http://www.bkjia.com/PHPjc/445607.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/445607.htmlTechArticleIn php, the three functions array_map, array_filter, and array_walk all operate on data. Let me introduce these three functions. The usage and difference of each function. array_walk: array_walk() returns a Boolean value if...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn