就性能而言,哪个是更好的选择?
在对象中时:
Case #1
public function test( $array ) {
return array_map( array( $this, 'do_something_to_element' ), $array );
}
Case #2
public function test( $array ) {
$return = array();
foreach ( $array as $value ) {
$return[] = do_something_to_element( $value );
}
return $return;
}
当然还有其他用途,并且可以填充许多许多示例。我看到评论说在对象中时, array_map 比 foreach 循环慢。
一般来说,在类似的需求中,array_map/array_walk 函数的执行速度是否比 foreach 循环更快?
供记录(php 7.4 + 64 位 + windows)
https://github.com/EFTEC/php-benchmarks/blob/master/benchmark_arraymap_foreach.php https://github.com/EFTEC/php-benchmarks/blob/master/benchmark_arraymap_foreach.php
- foreach =0.10213899612427
- 数组映射 = 0.18259811401367
- array_map(静态)= 0.18230390548706
- array_map(调用函数)= 0.17731499671936
Foreach 仍然更快,但无论我们是否使用静态函数,它都没有任何区别:
$result = array_map(function ($number) {
return $number * 10;
}, $numbers);
$result = array_map(static function ($number) {
return $number * 10;
}, $numbers);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)