一个php问题,究竟array_shift()和unset()谁快呢? php关于数组的函数是很强大的,今天在公司遇就到一个问题,我需要删除数组的第一个键,在php中有两种方法,就是用array_shift()或者是unset(),两个函数都可以实现删除数组第一个键的功能,前辈们都是用array_shift()的,但是我心里有个疑问,用unset()有何不妥呢?他们的效率如何呢?回家后我做了个实验:
<?php $a = array('aa'=>'a','bb'=>'b','cc'=>'c'); $t1=microtime(true); php关于数组的函数是很强大的,今天在公司遇就到一个问题,我需要删除数组的第一个键,在php中有两种方法,就是用array_shift()或者是unset(),两个函数都可以实现删除数组第一个键的功能,前辈们都是用array_shift()的,但是我心里有个疑问,用unset()有何不妥呢?他们的效率如何呢?回家后我做了个实验:
<?php $a = array('aa'=>'a','bb'=>'b','cc'=>'c'); $t1=microtime(true); array_shift($a); echo 'array_shift($a):'.((microtime(true)-$t1)*1000).'<br><br>'; $t2=microtime(true); unset($a['aa']); echo "unset(\$a['aa']):".((microtime(true)-$t2)*1000).'<br>'; ?> 结果相差很大,由于时间很短,所以我放大了1000倍 我刷了很多次,这个是这两个函数的平均差距。但是array_shift()还可以输出你删除的键值,unset()就不能,我想这就是差那么点时间的原因吧,不过如果不用输出的情况下,应该优先使用unset()的。 |
|