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

本文对比了PHP中in_array(), foreach()和array_search()三种搜索字符在数组中的方法,展示了它们在大量数据下执行时间的性能差异,array_search和in_array表现相近,而foreach效率最低。
摘要由CSDN通过智能技术生成

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

$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()

45363bea23b93e51cd37d96ae2842dc0.png

foreach

fb125c843d271425f0ade9ad1dd37de1.png

array_search()

7efb8bb5d286c285f8d60144f3d7eea8.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值