Home > Backend Development > PHP Tutorial > A small comparison of PHP function execution efficiency_PHP tutorial

A small comparison of PHP function execution efficiency_PHP tutorial

WBOY
Release: 2016-07-21 15:33:58
Original
1203 people have browsed it

It means to "split" all the numbers in the original array into "single" digits.
The following is a function I wrote:

Copy the code The code is as follows:

function splitStrToArray_mine($array)
{
$new_array = array();
foreach($array as $value)
{
$value = (string)$value;
$len = strlen($value );
for($i = 0; $i < $len; $i ++){
array_push($new_array, $value{$i});
}
}
return $new_array;
}

Tested it and it still works. Call as follows:
Copy code The code is as follows:

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

The output result is:
Copy code The code is as follows:

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"
}

Although the execution is good, you will be surprised if you look at the standard answer. There is only one sentence in the function, as follows:
Copy code The code is as follows:

//Standard function
function splitStrToArray($array)
{
return str_split(implode("", $array)) ;
}

So I wrote a script to test the operating efficiency gap between my own and standard functions. There is a microtime_float() function in it to provide precise time support:
Copy code The code is as follows:

//Function to measure time
function microtime_float()
{
list( $usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
//Custom function
function splitStrToArray_mine($array)
{
$new_array = array();
foreach($array as $value)
{
$value = (string)$value;
$len = strlen($value);
for($i = 0; $i < $len; $i ++){
array_push($new_array, $value{$i});
}
}
return $new_array;
}
//Standard function
function splitStrToArray($array)
{
return str_split(implode("", $array ));
}
//Test array
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
//Start test
$mine_start = microtime_float();
splitStrToArray_mine($data);
$mine_end = microtime_float();
//Standard function call
$sta_start = microtime_float();
splitStrToArray( $data);
$sta_end = microtime_float();
echo "The running time of your own function call is: " . (float)($mine_end - $mine_start) . " S
";
echo "The standard function call running time is: " . (float)($sta_end - $sta_start) . " S
";
$multiple = (int)((float)( $mine_end - $mine_start) / (float)($sta_end - $sta_start));
echo "The former is the latter: " . $multiple . " times! ";

Let's take a look at the output results:
The running time of your own function call is: 9.3936920166E-005 S
The standard function calling running time is: 2.69412994385E-005 S
The former is 3 times that of the latter!
If you refresh the page multiple times, you can find that the execution efficiency of the standard function is basically 3 times that of your own function! PHP's built-in functions: str_split(), implode(), so it is much faster than writing functions by yourself. Don't have an impression of the str_split() function? Let's take a look at the manual explanation:
str_split -- Convert a string to an array (Convert a string into an array)
Function description:
array str_split ( string string [, int split_length] )
Copy code The code is as follows:

Converts a string to an array. If the optional split_length parameter is specified, the returned array will be broken down into chunks with each being split_length in length, otherwise each chunk will be one character in length.
FALSE is returned if split_length is less than 1. If the split_length length exceeds the length of string, the entire string is returned as the first (and only) array element.

例 1. Example uses of str_split()
复制代码 代码如下:

$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>

Output may look like:
复制代码 代码如下:

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
)

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/322521.htmlTechArticle就是把原来的数组中的数都“拆”成“单”位的。 下面是自己写的一个函数: 复制代码 代码如下: function splitStrToArray_mine($array) { $new_array...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template