登录  /  注册
PHP array_map() 函数使用及示例
王林
发布: 2023-06-27 10:16:01
原创
681人浏览过

PHP中有很多内置的函数,其中 array_map() 函数是一个非常有用的函数之一。该函数可以接受一个或多个数组作为输入,并返回一个新的数组,新数组的每个元素都是输入数组经过回调函数处理后的结果。array_map() 函数主要用于简化操作,例如对一个数组中的每个元素进行操作并返回新的数组。

array_map() 函数的语法如下:

array_map(callable $callback, array ...$arrays): array
登录后复制

其中,$callback 是回调函数,$arrays 是一个或多个数组。函数会遍历 $arrays 中的所有数组,对每个数组的元素依次调用回调函数,最后返回一个包含所有新元素的数组。

回调函数就是对输入元素进行操作的函数。回调函数接收的参数数目必须和输入数组的元素数目相同,并且第一个参数永远是输入数组的一个元素。回调函数可以有多个输入数组,但每个输入数组的元素数量必须相同。

下面是一个简单的例子,使用 array_map() 函数将一个数组中的元素加倍:

function double($n) {
  return $n * 2;
}

$numbers = array(1, 2, 3, 4, 5);
$doubled = array_map('double', $numbers);

print_r($doubled);
登录后复制

输出:

Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)
登录后复制

在这个例子中,我们首先定义一个回调函数 double(),它将输入数值乘以 2 并返回结果。然后我们定义一个数组 $numbers,其中包含 1 到 5 的整数。接下来,我们调用 array_map(),将 double() 函数作为回调函数,将 $numbers 数组作为输入。最后,我们将输出存储在 $doubled 数组中,并在屏幕上打印出来。

我们还可以在回调函数中使用多个输入数组。例如,可以使用 array_map() 对两个数组中的元素进行求和:

function sum($a, $b) {
  return $a + $b;
}

$numbers1 = array(1, 2, 3, 4, 5);
$numbers2 = array(10, 20, 30, 40, 50);
$summed = array_map('sum', $numbers1, $numbers2);

print_r($summed);
登录后复制

输出:

Array
(
    [0] => 11
    [1] => 22
    [2] => 33
    [3] => 44
    [4] => 55
)
登录后复制

在这个例子中,我们定义了一个新的回调函数 sum(),它接受两个输入参数并将它们相加。我们创建两个数组 $numbers1 和 $numbers2,然后将它们传递给 array_map() 函数,带着 sum() 函数作为回调。函数返回一个新的数组 $summed,它包括 $numbers1 和 $numbers2 数组中的元素相加的结果。

array_map() 还有一个使用非常广泛的特性:使用匿名函数作为回调函数。匿名函数是 PHP 5.3 引入的新特性,它允许我们在必要时动态创建函数。下面是一个使用匿名函数的例子,计算一个字符串数组中所有字符串的长度:

$strings = array('hello', 'world', 'goodbye');
$lengths = array_map(function($str) { return strlen($str); }, $strings);

print_r($lengths);
登录后复制

输出:

Array
(
    [0] => 5
    [1] => 5
    [2] => 7
)
登录后复制

在这个例子中,我们定义了一个匿名函数,它接受一个字符串作为输入并返回该字符串的长度。我们将这个匿名函数作为回调函数传递给 array_map() 函数,使用 $strings 数组作为输入。最后,输出一个新的数组 $lengths,其中包括 $strings 数组中所有字符串的长度。

总之,array_map() 函数是一个非常有用的工具,可以使数组操作更加清晰和简洁。回调函数的可定制性也非常高,可以轻松地对各种数据类型进行操作。希望这篇文章能够帮助你更好地理解和使用 array_map() 函数。

以上就是PHP array_map() 函数使用及示例的详细内容,更多请关注php中文网其它相关文章!

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学