Home > Backend Development > PHP Tutorial > A brief analysis and comparison of the use of array_map and array_walk in php

A brief analysis and comparison of the use of array_map and array_walk in php

高洛峰
Release: 2023-03-03 13:26:01
Original
1396 people have browsed it

1. array_map()

1. The array_map() function applies the user-defined function to each value in the array, and returns the array with new values ​​after the user-defined function is applied. If the function is applied, If there is no return value, the corresponding new value array will be empty.

2. The number of parameters accepted by the callback function should be consistent with the number of arrays passed to the array_map() function.

3. Tip: You can input one or more arrays to the function.入 If the phase function enters 2 arrays, the function acceptance parameters should also have two. When the MAP is passed on the value, one is taken from two arrays to the number of letters. That is, multiple arrays are submitted synchronously. Instead of submitting one array and then submitting the next several arrays, the function also needs to have several parameters

4. Syntax: array array_map (callable callback,arrayarr1 [, array $ ] (array &array,callablefuncname [, mixed $userdata = NULL ] )

Parameters:

$array The input array.

$funcname callback function, typically $funcname accepts two parameters. The value of the $array parameter is used as the first one, and the key name is used as the second one.

$userdata If the optional parameter $userdata is provided, it will be passed to $funcname as the third parameter.


Note:

If $funcname needs to operate directly on the values ​​in the array, specify the first argument to funcname as a reference (add the ampersand). This way
any changes to these cells will also change the original array itself.

Return value:

Return TRUE on success, or FALSE on failure.

Example:

<?php
//单数组形式
function myfunction($v)
{
 if ($v==="Dog")
 {
  return "Fido";
 }
 return $v;
}
 
$a=array("Horse","Dog","Cat");
print_r(array_map("myfunction",$a));
 
//多数组形式
function myfunction1($v1,$v2)
{
 if ($v1===$v2)
 {
  return "same";
 }
 return "different";
}
 
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction1",$a1,$a2));
?>
Copy after login


The above routine will output:

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
//传引用,改变了所传参数组
function test_alter(&$item1, $key, $prefix)
{
 $item1 = "$prefix: $item1";
}
 
function test_print($item2, $key)
{
 echo "$key. $item2<br />\n";
}
 
echo "Before ...:\n";
//单数组
array_walk($fruits, &#39;test_print&#39;);
 
//带额外参数
array_walk($fruits, &#39;test_alter&#39;, &#39;fruit&#39;);
echo "... and after:\n";
 
array_walk($fruits, &#39;test_print&#39;);
Copy after login


Key point:

map is mainly to get the new array processed by your callback function, what you want is the result.

walk mainly uses your callback function once for each parameter. What is important is the processing process.

walk can be considered to provide additional parameters to the callback function, map cannot

walk mainly operates on each value in the array, and the operation result affects the original array

map mainly operates on the values ​​in the array Return the array after performing the operation to get a new array

walk There can be no return value map, because the array needs to be filled


Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template