php 方法与函数的效率,PHP 函数执行效率的小比较

就是把原来的数组中的数都“拆”成“单”位的。

下面是自己写的一个函数:

复制代码代码如下:

functionsplitStrToArray_mine($array)

{

$new_array=array();

foreach($arrayas$value)

{

$value=(string)$value;

$len=strlen($value);

for($i=0;$i

array_push($new_array,$value{$i});

}

}

return$new_array;

}

测试了一下,还是可以执行的,如下调用:

复制代码代码如下:

//测试数组

$data=array(12,43,87,45,98,74,83,67,12);

var_dump(splitStrToArray_mine($data));

输出结果为:

复制代码代码如下:

array(18){

[0]=>

string(1)"1"

[1]=>

string(1)"2"

[2]=>

string(1)"4"

[3]=>

string(1)"3"

[4]=>

string(1)"8"

[5]=>

string(1)"7"

[6]=>

string(1)"4"

[7]=>

string(1)"5"

[8]=>

string(1)"9"

[9]=>

string(1)"8"

[10]=>

string(1)"7"

[11]=>

string(1)"4"

[12]=>

string(1)"8"

[13]=>

string(1)"3"

[14]=>

string(1)"6"

[15]=>

string(1)"7"

[16]=>

string(1)"1"

[17]=>

string(1)"2"

}

虽然执行的不错,但是看看标准答案就会让你大吃一惊的,函数中就一句话,如下:

复制代码代码如下:

//标准函数

functionsplitStrToArray($array)

{

returnstr_split(implode("",$array));

}

于是写了脚本来测试自己的和标准的函数的运行效率差距,里面有一个microtime_float()函数用来提供精确时间的支持:

复制代码代码如下:

//测量时间的函数

functionmicrotime_float()

{

list($usec,$sec)=explode("",microtime());

return((float)$usec+(float)$sec);

}

//自定义函数

functionsplitStrToArray_mine($array)

{

$new_array=array();

foreach($arrayas$value)

{

$value=(string)$value;

$len=strlen($value);

for($i=0;$i

array_push($new_array,$value{$i});

}

}

return$new_array;

}

//标准函数

functionsplitStrToArray($array)

{

returnstr_split(implode("",$array));

}

//测试数组

$data=array(12,43,87,45,98,74,83,67,12);

//开始测试

$mine_start=microtime_float();

splitStrToArray_mine($data);

$mine_end=microtime_float();

//标准函数调用

$sta_start=microtime_float();

splitStrToArray($data);

$sta_end=microtime_float();

echo"自己的函数调用运行时间为:".(float)($mine_end-$mine_start)."S
";

echo"标准的函数调用运行时间为:".(float)($sta_end-$sta_start)."S
";

$multiple=(int)((float)($mine_end-$mine_start)/(float)($sta_end-$sta_start));

echo"前者是后者的:".$multiple."倍!";

来看看输出结果:

自己的函数调用运行时间为:9.3936920166E-005S

标准的函数调用运行时间为:2.69412994385E-005S

前者是后者的:3倍!

多次刷新页面的话,可以发现标准函数的执行效率基本上是自己的函数的3倍!当然,标准的函数中使用了PHP的内置函数:str_split(),implode(),所以要比自己写函数快得多,对str_split()函数没有印象?来看看手册解释:

str_split--Convertastringtoanarray(将一个字符串转换成数组)

函数描述:

arraystr_split(stringstring[,intsplit_length])

复制代码代码如下:

Convertsastringtoanarray.Iftheoptionalsplit_lengthparameterisspecified,thereturnedarraywillbebrokendownintochunkswitheachbeingsplit_lengthinlength,otherwiseeachchunkwillbeonecharacterinlength.

FALSEisreturnedifsplit_lengthislessthan1.Ifthesplit_lengthlengthexceedsthelengthofstring,theentirestringisreturnedasthefirst(andonly)arrayelement.

例1.Exampleusesofstr_split()

复制代码代码如下:

$str="HelloFriend";

$arr1=str_split($str);

$arr2=str_split($str,3);

print_r($arr1);

print_r($arr2);

?>

Outputmaylooklike:

复制代码代码如下:

Array

(

[0]=>H

[1]=>e

[2]=>l

[3]=>l

[4]=>o

[5]=>

[6]=>F

[7]=>r

[8]=>i

[9]=>e

[10]=>n

[11]=>d

)

Array

(

[0]=>Hel

[1]=>lo

[2]=>Fri

[3]=>end

)

您可能感兴趣的文章:i++循环与i-–循环的执行效率(递增与递减效率)提高ASP页面执行效率的方法分析优化innerHTML操作(提高代码执行效率)根据mysql慢日志监控SQL语句执行效率JavaScript执行效率与性能提升方案查询mysql中执行效率低的sql语句的方法Oracle提高sql执行效率的心得建议分享50个提高PHP执行效率的技巧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值