关于in_array() foreach array_search() 的性能对比
对于这几个函数,都可以用于判断某字符是否存在于数组中,群里有人在问,所以做了一个简单的测试。请看代码。
<?php
/*
*Powered by ciogao@gmail.comQQ 285305740
*/
echo '结论:<br>in_array与array_search效率几乎相同,in_array仅返回真伪,array_search同时返回位置.<br>foreach性能最差<br>';
$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(): http://bbs.phpchina.com/data/attachment/forum/201111/08/161818upw9bpqzws2cbvu2.jpg
foreach(): http://bbs.phpchina.com/data/attachment/forum/201111/08/161908f1o1f1cveukm66af.jpg
array_search(): http://bbs.phpchina.com/data/attachment/forum/201111/08/1619087rcxr2tcr9207ddt.jpg
一般内置函数效率都比较高点的吧。
页:
[1]