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

本文通过一个简单的PHP脚本对比了不同大小数组在foreach循环中的性能差异,结果显示当遍历较小时数组时速度更快。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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放小的数组,速度比较快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值