PHP函数执行效率的一个小比较

它是将原始数组的数目拆分为单元。
下面是您编写的函数:
复制代码代码如下所示:
功能splitstrtoarray_mine(数组)
{
new_array美元=阵();
foreach(数组作为美元的价值)
{
$ =(字符串)$值;
$ len = strlen(价值);
($ i = 0;$ i;
array_push(new_array美元,美元的价值,{我});
}
}
返回的new_array;
}

测试,或者可以执行,如下所示:
复制代码代码如下所示:
数组测试
$ =数组(12, 43, 87,45, 98, 74,83, 67, 12);
var_dump(splitstrtoarray_mine($数据));

输出结果如下:
复制代码代码如下所示:
数组(18){
{ 0 } >
字符串(1)1
{ 1 } >
字符串(1)2
{ 2 } >
字符串(1)4
{ 3 } >
字符串(1)3
{ 4 } >
字符串(1)8
{ 5 } >
字符串(1)7
{ 6 } >
字符串(1)4
{ 7 } >
字符串(1)5
{ 8 } >
字符串(1)9
{ 9 } >
字符串(1)8
{ 10 } >
字符串(1)7
{ 11 } >
字符串(1)4
{ 12 } >
字符串(1)8
{ 13 } >
字符串(1)3
{ 14 } >
字符串(1)6
{ 15 } >
字符串(1)7
{ 16 } >
字符串(1)1
{ 17 } >
字符串(1)2
}

它做得很好,但是看标准答案会让你大吃一惊。函数是一个单词,如下所示:
复制代码代码如下所示:
标准函数
功能splitstrtoarray(数组)
{
返回str_split(内爆(
}

所以我们写了脚的运行效率和它的标准函数之间的区别。有一个microtime_float()函数提供的精确时间支持。
复制代码代码如下所示:
作为时间的函数的测量
microtime_float()函数
{
List ($usec, $sec) = explode (
返回((浮动)$ USEC +(浮动)$秒);
}
自定义函数
功能splitstrtoarray_mine(数组)
{
new_array美元=阵();
foreach(数组作为美元的价值)
{
$ =(字符串)$值;
$ len = strlen(价值);
($ i = 0;$ i;
array_push(new_array美元,美元的价值,{我});
}
}
返回的new_array;
}
标准函数
功能splitstrtoarray(数组)
{
返回str_split(内爆(
}
数组测试
$ =数组(12, 43, 87,45, 98, 74,83, 67, 12);
对测试
mine_start美元= microtime_float();
splitstrtoarray_mine($数据);
mine_end美元= microtime_float();
标准函数调用
sta_start美元= microtime_float();
splitstrtoarray($数据);
sta_end美元= microtime_float();
它自己的函数调用运行时间是。(浮动)($ mine_end至mine_start)。;
标准函数调用运行时间为:。(浮动)($ sta_end至sta_start)。;
$多=(int)(浮动)($ mine_end至mine_start)/(浮动)($ sta_end至sta_start));
前者是后者。多美元。双!;

查看输出结果:
你自己的函数调用运行时间:9.3936920166e-005 S
标准函数调用运行时间:2.69412994385e-005 S
前者是后者:3次!
当您多次刷新页面时,您会发现标准函数的执行效率基本上是您自己函数的3倍!当然,标准函数使用PHP内置函数:str_split(),(),所以它会比写函数更快,而且没有任何印象str_split()函数。看说明书的解释:
str_split -将一个字符串数组(将字符串转换成一个数组)
功能描述:
str_split(字符串数组{ int split_length })
复制代码代码如下所示:
将字符串转换为数组。如果split_length可选参数,可选,阵列,它是非常重要的。
假如果split_length小于1返回。如果split_length,如果,它也被称为玉。

例1。对str_split示例使用()
复制代码代码如下所示:
< PHP
你好朋友;
$ arr1 = str_split($str);
$ arr2 = str_split($str,3);
print_r(合前);
print_r($ arr2);
>

输出可能看起来像:
复制代码代码如下所示:
阵列

{ 0 } h
{ 1 } e
{ 2 } = l
{ 3 } = l
{ 4 } > o
{ 5 } >
{ 6 } = f
{ 7 } = r
{ 8 } = i
{ 9 } e
{ 10 } > n
{ 11 } = d

阵列

{ 0 } = > HEL
{ 1 } > LO
{ 2 } = >周五
{ 3 }结束