php foreach速度,PHP foreach函数性能

这篇博客通过对比不同方式遍历数组并进行元素增值操作的运行时间,展示了带指针的foreach在PHP中性能最优。实验结果显示,带指针的foreach不带键值遍历比其他方法如for循环、array_walk、each和next等更快。

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

这里有一个标准:

srand();

$asize = 1000000;

$a = array();

for ($x=1;$x<=$asize;$x++) $a[]=rand();

$i=0;

$s = microtime(true);

foreach($a as $k=>$v) {

++$a[$k];

}

$e = microtime(true);

dolog($s,$e,'FOREACH-KEY');

$i=0;

$s = microtime(true);

foreach($a as &$v) {

++$v;

}

$e = microtime(true);

dolog($s,$e, 'FOREACH-PTR');

$i=0;

$s = microtime(true);

for ($x=0;$x

++$a[$x];

}

$e = microtime(true);

dolog($s,$e,'FOR');

function awpp(&$item,$key){

++$item;

}

$s = microtime(true);

array_walk($a, 'awpp');

$e = microtime(true);

dolog($s,$e,'ARRAY_WALK');

reset($a);

$s = microtime(true);

while (list($k, $v) = each($a)) {

++$a[$k];

}

$e = microtime(true);

dolog($s,$e,'EACH');

reset($a);

$s = microtime(true);

$node = current($a);

++$node;

while($node=next($a)) {

++$node;

}

$e = microtime(true);

dolog($s,$e,'NEXT');

结果是:

FOREACH-KEY Start: 1367595478.8087210655, End: 1367595479.2945981026, DIFF: 0.4858770370

FOREACH-PTR Start: 1367595479.2946701050, End: 1367595479.4266710281, DIFF: 0.1320009232

FOR Start: 1367595479.4267220497, End: 1367595479.6769850254, DIFF: 0.2502629757

ARRAY_WALK Start: 1367595479.6770300865, End: 1367595481.1930689812, DIFF: 1.5160388947

EACH Start: 1367595481.1931140423, End: 1367595482.5088000298, DIFF: 1.3156859875

NEXT Start: 1367595482.5088429451, End: 1367595483.2801001072, DIFF: 0.7712571621

最快的

带指针的foreach

不带钥匙

价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值