PHP 中的 array_map 和 array_walk 函数

John Wachira 2023年1月30日 2022年5月13日
  1. 使用 PHP array_map() 函数通过用户定义的函数修改数组中的元素
  2. 在 PHP 中使用 array_walk() 使用包含键的函数运行数组
PHP 中的 array_map 和 array_walk 函数

在本教程中,我们将介绍 array_map()array_walk() 函数。我们将看到如何使用用户定义的函数修改数组中的所有元素。

此外,它将涵盖你可以使用上述功能的不同方式。

使用 PHP array_map() 函数通过用户定义的函数修改数组中的元素

你可以使用 array_map() 函数将数组中的所有值发送到用户定义的函数。

在下面的示例代码中,我们将数组 $arr 中的值发送到函数 divide 并返回新值。

示例代码 1:

<?php
// Define the function divide
function divide($n) {
	
	return($n/$n);
	
}
$a = array(2, 4, 6, 8, 10);

print_r(array_map("divide", $a));

?>	

输出:

Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 1 [4] => 1 )

在上面的代码中,我们的函数 divide 将数组 $a 中的所有值除以相应的值;因此输出 1

让我们尝试使用多个数组。

示例代码 2:

<?php
// Define the function minusAdd
function minusAdd($t, $r, $k) {
	
	return($t - $r + $k);
	
}
$arr1 = array(28, 14, 76, 38, 10);
$arr2 = array(4, 6, 20, 12, 3);
$arr3 = array(12, 6, 7 ,8 ,9);

print_r(array_map("minusAdd", $arr1, $arr2, $arr3));

?>	

输出:

Array ( [0] => 36 [1] => 14 [2] => 63 [3] => 34 [4] => 16 )

如下例所示,我们可以使用 array_map() 函数来更改数组中的元素。

示例代码 3:

<?php

function synonym($s) {
	if ($s === "Male Horse") {
		return "Stallion";
	}
	return $s;
}
$arr = array("Female Horse", "Male Horse", "Pony");

print_r(array_map("synonym", $arr));

?>

输出:

Array ( [0] => Female Horse [1] => Stallion [2] => Pony )

从上面的代码中,我们在 array_map 函数的帮助下将 Male Horse 更改为 Stallion

你还可以使用 array_map 函数创建一个数组。要使代码正常工作,你必须使用 null 参数来代替定义的函数。

示例代码 4:

<?php

// Create an array of an array

$a1 = array('Apple', 'Eggplant', 'Cucumber', 'Mango');
$a2 = array('Fruit', 'Vegetable', 'Vegetable', 'Fruit');

$result = array_map( null, $a1, $a2);

print_r($result);

?>

输出:

Array ( [0] => Array ( [0] => Apple [1] => Fruit ) [1] => Array ( [0] => Eggplant [1] => Vegetable ) [2] => Array ( [0] => Cucumber [1] => Vegetable ) [3] => Array ( [0] => Mango [1] => Fruit ) )

在 PHP 中使用 array_walk() 使用包含键的函数运行数组

由于 array_map() 函数不处理键和参数,我们使用 array_walk(),如下例所示。

示例代码 6:

<?php

function assign($color, $key) {
	echo "The $key is $color <br>";
}
$arr = array("Apple" => "red", "Eggplant" => "purple");

array_walk($arr, "assign");

?>

输出:

The Apple is red
The Eggplant is purple
Author: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

相关文章 - PHP Array