测试collect和foreach处理速度
想法:使用相同数组进行循环处理同样逻辑,判断那个运行时间越短越块
话不多说上代码
public function test()
{
//创建一个1-500000的数组
$int_array = range(1,500000);
//foreach循环执行时间计算
$start_time = microtime(true);
foreach ($int_array as &$value){
$value = $value+1;
}
echo round( microtime(true) - $start_time,6);
echo "<br>";
//collect循环执行时间计算
$start_time = microtime(true);
collect($int_array)->map(function ($value){
return $value+1;
})->toArray();
echo round(microtime(true) - $start_time,6);
echo "<br>";
//执行结果
//0.014683
//0.065083
}
备注:由于可能有缓存等可能原因,进行反复请求测试发现foreach大约0.01,collect大约0.06,foreach完胜