就性能而言,哪一种选择更好?
在对象中:
案例#1
public function test( $array ) {
return array_map( array( $this, 'do_something_to_element' ), $array );
}
案例#2
public function test( $array ) {
$return = array();
foreach ( $array as $value ) {
$return[] = do_something_to_element( $value );
}
return $return;
}
当然,还有其他的用途,并且可以填充许多例子。我看到过这样的评论:在对象中,array_map比foreach循环慢。
通常,数组_map/array函数的执行速度是否比在类似需要下的foreach循环更快?
发布于 2015-02-04 00:11:01
我相信这回答了你的问题,并且在2015-01-22是最新的。
array_map虽然更优雅,但令人遗憾的是,在PHP中速度较慢。尤其是当它与关闭一起使用时。
发布于 2020-06-07 13:22:14
用于记录(php 7.4 +64位+ windows)
Foreach仍然更快,但如果我们使用静态函数或不使用,它不会有任何区别:
$result = array_map(function ($number) {
return $number * 10;
}, $numbers);
$result = array_map(static function ($number) {
return $number * 10;
}, $numbers);
发布于 2015-12-09 02:43:18
我刚刚在Symfony项目上测试了这个,因为它看起来很有意义,所以我不得不去谷歌。脚本从160 to、使用foreach()
的到使用array_map()
的260 to。考虑到应用程序的大小,这与单个方法调用相比有相当大的增加。
https://stackoverflow.com/questions/25481714
复制相似问题