首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP -- array_map比foreach快吗?

PHP -- array_map比foreach快吗?
EN

Stack Overflow用户
提问于 2014-08-25 08:17:33
回答 4查看 24.4K关注 0票数 13

就性能而言,哪一种选择更好?

在对象中:

案例#1

代码语言:javascript
运行
复制
public function test( $array ) {
    return array_map( array( $this, 'do_something_to_element' ), $array );
}

案例#2

代码语言:javascript
运行
复制
public function test( $array ) {
    $return = array();
    foreach ( $array as $value ) {
        $return[] = do_something_to_element( $value );
    }
    return $return;
}

当然,还有其他的用途,并且可以填充许多例子。我看到过这样的评论:在对象中,array_map比foreach循环慢。

通常,数组_map/array函数的执行速度是否比在类似需要下的foreach循环更快?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-04 00:11:01

我相信这回答了你的问题,并且在2015-01-22是最新的。

map with static function

array_map虽然更优雅,但令人遗憾的是,在PHP中速度较慢。尤其是当它与关闭一起使用时。

票数 12
EN

Stack Overflow用户

发布于 2020-06-07 13:22:14

用于记录(php 7.4 +64位+ windows)

foreach.php

  • foreach = 0.10213899612427
  • array_map = 0.18259811401367
  • array_map (静态)= 0.18230390548706
  • array_map (调用函数)= 0.17731499671936

Foreach仍然更快,但如果我们使用静态函数或不使用,它不会有任何区别:

代码语言:javascript
运行
复制
    $result = array_map(function ($number) {
        return $number * 10;
    }, $numbers);
代码语言:javascript
运行
复制
    $result = array_map(static function ($number) {
        return $number * 10;
    }, $numbers);
票数 8
EN

Stack Overflow用户

发布于 2015-12-09 02:43:18

我刚刚在Symfony项目上测试了这个,因为它看起来很有意义,所以我不得不去谷歌。脚本从160 to、使用foreach()到使用array_map()260 to。考虑到应用程序的大小,这与单个方法调用相比有相当大的增加。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25481714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档