日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

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

發(fā)布時間:2025/4/5 php 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 执行效率,PHP 函数执行效率的小比较 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

就是把原來的數(shù)組中的數(shù)都“拆”成“單”位的。

下面是自己寫的一個函數(shù):

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;

}

測試了一下,還是可以執(zhí)行的,如下調用:

//測試數(shù)組

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

}

雖然執(zhí)行的不錯,但是看看標準答案就會讓你大吃一驚的,函數(shù)中就一句話,如下:

//標準函數(shù)

function splitstrtoarray($array)

{

return str_split(implode("", $array));

}

于是寫了腳本來測試自己的和標準的函數(shù)的運行效率差距,里面有一個 microtime_float() 函數(shù)用來提供精確時間的支持:

//測量時間的函數(shù)

function microtime_float()

{

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

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

}

//自定義函數(shù)

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;

}

//標準函數(shù)

function splitstrtoarray($array)

{

return str_split(implode("", $array));

}

//測試數(shù)組

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

//開始測試

$mine_start = microtime_float();

splitstrtoarray_mine($data);

$mine_end = microtime_float();

//標準函數(shù)調用

$sta_start = microtime_float();

splitstrtoarray($data);

$sta_end = microtime_float();

echo "自己的函數(shù)調用運行時間為:" . (float)($mine_end - $mine_start) . " s
";

echo "標準的函數(shù)調用運行時間為:" . (float)($sta_end - $sta_start) . " s
";

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

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

來看看輸出結果:自己的函數(shù)調用運行時間為:9.3936920166e-005 s

標準的函數(shù)調用運行時間為:2.69412994385e-005 s

前者是后者的:3 倍!

多次刷新頁面的話,可以發(fā)現(xiàn)標準函數(shù)的執(zhí)行效率基本上是自己的函數(shù)的 3 倍!當然,標準的函數(shù)中使用了 php 的內置函數(shù): str_split(),implode(),所以要比自己寫函數(shù)快得多,對 str_split() 函數(shù)沒有印象?來看看手冊解釋:

str_split -- convert a string to an array(將一個字符串轉換成數(shù)組)

函數(shù)描述:array str_split ( string string [, int split_length] )

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

)

希望與廣大網友互動??

點此進行留言吧!

總結

以上是生活随笔為你收集整理的php 执行效率,PHP 函数执行效率的小比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。