两个大数组foreach,找出相同的key数量,所用的时间对比

<?php
function microtime_float() {
	list($usec, $sec) = explode(" ", microtime());
	return ((float)$usec + (float)$sec);
}

for($i = 1;$i <= 10000;$i++) {
	$data_1[$i] = 1;
}
for($i = 1001;$i <= 600000;$i++) {
	$data_2[$i] = 1;
}

$time_start = microtime_float();
$num = 0;
foreach ($data_1 as $key => $value) {
	if ($data_2[$key]) {
		$num++;
	}
}
echo $num;
$time_end = microtime_float();
$delta_time = $time_end - $time_start;
echo '程序总用时:'.round($delta_time, 3).'秒。';

$time_start = microtime_float();
$num = 0;
foreach ($data_2 as $key => $value) {
	if ($data_1[$key]) {
		$num++;
	}
}
echo $num;
$time_end = microtime_float();
$delta_time = $time_end - $time_start;
echo '程序总用时:'.round($delta_time, 3).'秒。';
?>


结果:9000程序总用时:0.003秒。9000程序总用时:0.595秒。

foreach放小的数组,速度比较快。

原文地址:https://www.cnblogs.com/y0umer/p/3838792.html