手机
当前位置:查字典教程网 >编程开发 >php教程 >php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
摘要:判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大...

判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异。

<?php $runtime= new runtime; $runtime->start(); $a = 'k'; $b = array('a','b','c','d','e','f','g','h','i','j','k'); /* for ($i=0; $i < 100000; $i++) { var_dump(in_array($a, $b)); } */ /* for ($i=0; $i < 100000; $i++) { foreach ($b as $key => $value) { if ($a == $value) { //echo TRUE; continue; } } } */ /* for ($i=0; $i < 100000; $i++) { array_search($a, $b); } */ $runtime->stop(); echo $_b; echo "执行时间: ".$runtime->spent()." 毫秒"; class runtime{ var $StartTime = 0; var $StopTime = 0; function get_microtime(){ list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec); } function start(){ $this->StartTime = $this->get_microtime(); } function stop(){ $this->StopTime = $this->get_microtime(); } function spent(){ return round(($this->StopTime - $this->StartTime) * 1000, 1); } } ?>

以上程序执行时间如下图所示:

in_array()

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比1

foreach

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比2

array_search()

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比3

由上可以大致看出这三种方法在性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。

【php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比】相关文章:

一个php作的文本留言本的例子(五)

PHP安全编程之加密功能

php序列化函数serialize() 和 unserialize() 与原生函数对比

php递归调用删除数组空值元素的方法

php使用数组填充下拉列表框的方法

PHP中你应该知道的require()文件包含的正确用法

常用PHP框架功能对比表

php恢复数组的key为数字序列的方法

十天学会php之第九天

MVC模式的PHP实现

精品推荐
分类导航