数组函数

PHP array_map() 函数

主题:PHP 数组参考上一页|下一页

说明

array_map() 函数将回调函数应用于数组的每个元素,并返回一个带有修改元素的新数组。

下表总结了该函数的技术细节。

返回值: 返回一个数组,其中包含将回调函数应用于 array1 的每个元素和其他数组(如果提供)的结果。
版本: PHP 4.0.6+

语法

array_map() 函数的基本语法如下:

array_map(callback, array1, array2, ...);

下面的例子展示了 array_map() 函数的作用。

<?php
// 定义回调函数
function cube($n){
    return ($n * $n * $n);
}

// 样本数组
$numbers = array(1, 2, 3, 4, 5);

// 对每个数字应用回调函数
$result = array_map("cube", $numbers);
print_r($result);
?>

注意:当且仅当仅传递一个数组时,键将保留在返回的数组中。 如果传递了多个数组,则返回的数组将具有连续的整数键。


参数

array_map() 函数接受以下参数。

参数 说明
callback 必填。 指定为每个数组中的每个元素运行的回调函数。
array 必填。 指定要处理的数组。
... 可选。 指定更多要处理的数组。

更多示例

这里有更多示例展示了 array_map() 函数的实际工作原理:

在以下示例中,结果数组将保留原始数组的键。

<?php
// 定义回调函数
function total($price){
    $tax = 5/100; // 5%
    return ($price *= (1 + $tax));
}

// 样本数组
$products = array("bread"=>3, "tea"=>5, "coffee"=>10);

// 对每个元素应用回调函数
$result = array_map("total", $products);
print_r($result);
?>

以下示例演示了将多个数组传递给该函数。

<?php
// 定义回调函数
function phonics($v1, $v2){
    return "$v1 is for $v2";
}

// 样本数组
$letters = array("a", "b", "c", "d");
$words = array("apple", "ball", "cat", "dog");

// 对每个元素应用回调函数
$result = array_map("phonics", $letters, $words);
print_r($result);
?>

以下示例演示了如何使用 PHP 内置的 strtoupper() 函数将数组的每个字符串值的大小写更改为大写:

<?php
// 样本数组
$fruits = array("apple", "banana", "orange", "mango");

// 对每个元素应用回调函数
$result = array_map("strtoupper", $fruits);
print_r($result);
?>

提示:您不仅可以使用 array_map() 自定义函数,还可以使用 PHP 的内置函数,就像我们在上面的示例中使用的 strtoupper() 函数一样。

Advertisements