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