PHP 中的 array_map 和 array_walk 函式
John Wachira
2023年1月30日
2022年5月13日
在本教程中,我們將介紹 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 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