亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP 函數(shù)執(zhí)行效率的小比較

 更新時間:2010年10月17日 20:45:33   作者:  
要求寫一個自定義函數(shù),使 $data = array(12, 43, 87, 45) => $data = array(1, 2, 4, 3, 8, 7, 4, 5);
就是把原來的數(shù)組中的數(shù)都“拆”成“單”位的。
下面是自己寫的一個函數(shù):
復(fù)制代碼 代碼如下:

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í)行的,如下調(diào)用:
復(fù)制代碼 代碼如下:

//測試數(shù)組
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
var_dump(splitStrToArray_mine($data));

輸出結(jié)果為:
復(fù)制代碼 代碼如下:

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í)行的不錯,但是看看標(biāo)準(zhǔn)答案就會讓你大吃一驚的,函數(shù)中就一句話,如下:
復(fù)制代碼 代碼如下:

//標(biāo)準(zhǔn)函數(shù)
function splitStrToArray($array)
{
return str_split(implode("", $array));
}

于是寫了腳本來測試自己的和標(biāo)準(zhǔn)的函數(shù)的運行效率差距,里面有一個 microtime_float() 函數(shù)用來提供精確時間的支持:
復(fù)制代碼 代碼如下:

//測量時間的函數(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;
}
//標(biāo)準(zhǔn)函數(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();
//標(biāo)準(zhǔn)函數(shù)調(diào)用
$sta_start = microtime_float();
splitStrToArray($data);
$sta_end = microtime_float();
echo "自己的函數(shù)調(diào)用運行時間為:" . (float)($mine_end - $mine_start) . " S <br />";
echo "標(biāo)準(zhǔn)的函數(shù)調(diào)用運行時間為:" . (float)($sta_end - $sta_start) . " S <br />";
$multiple = (int)((float)($mine_end - $mine_start) / (float)($sta_end - $sta_start));
echo "前者是后者的:" . $multiple . " 倍!";

來看看輸出結(jié)果:
自己的函數(shù)調(diào)用運行時間為:9.3936920166E-005 S
標(biāo)準(zhǔn)的函數(shù)調(diào)用運行時間為:2.69412994385E-005 S
前者是后者的:3 倍!
多次刷新頁面的話,可以發(fā)現(xiàn)標(biāo)準(zhǔn)函數(shù)的執(zhí)行效率基本上是自己的函數(shù)的 3 倍!當(dāng)然,標(biāo)準(zhǔn)的函數(shù)中使用了 PHP 的內(nèi)置函數(shù): str_split(),implode(),所以要比自己寫函數(shù)快得多,對 str_split() 函數(shù)沒有印象?來看看手冊解釋:
str_split -- Convert a string to an array(將一個字符串轉(zhuǎn)換成數(shù)組)
函數(shù)描述:
array str_split ( string string [, int split_length] )
復(fù)制代碼 代碼如下:

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()
復(fù)制代碼 代碼如下:

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

Output may look like:
復(fù)制代碼 代碼如下:

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
)

相關(guān)文章

  • 淺析PHP編程中10個最常見的錯誤

    淺析PHP編程中10個最常見的錯誤

    PHP是個偉大的web開發(fā)語言,靈活的語言,但是看到php程序員周而復(fù)始的犯的一些錯誤。我做了下面這個列表,列出了PHP程序員經(jīng)常犯的10中錯誤,大多數(shù)和安全相關(guān)??纯茨惴噶藥追N
    2014-08-08
  • 分享php分頁的功能模塊

    分享php分頁的功能模塊

    這里給大家分享的是個人前段時間做了一個列表分頁的功能模塊(php分頁的功能模塊),非常的簡單實用,推薦給有需要的小伙伴參考下。
    2015-06-06
  • php 靜態(tài)變量的初始化

    php 靜態(tài)變量的初始化

    php的成員變量可以在聲明的同時進行初始化,但是只能用標(biāo)量進行初始化。
    2009-11-11
  • PHP實現(xiàn)的自定義圖像居中裁剪函數(shù)示例【測試可用】

    PHP實現(xiàn)的自定義圖像居中裁剪函數(shù)示例【測試可用】

    這篇文章主要介紹了PHP實現(xiàn)的自定義圖像居中裁剪函數(shù),結(jié)合實例形式分析了php針對圖片的獲取、計算、裁剪、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • php使用curl出現(xiàn)Expect:100-continue解決方法

    php使用curl出現(xiàn)Expect:100-continue解決方法

    這篇文章主要介紹了php使用curl出現(xiàn)Expect:100-continue解決方法,實例分析了Expect:100-continue出現(xiàn)的原理與解決方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • CI框架中通過hook的方式實現(xiàn)簡單的權(quán)限控制

    CI框架中通過hook的方式實現(xiàn)簡單的權(quán)限控制

    這篇文章主要介紹了CI框架中通過hook的方式實現(xiàn)簡單的權(quán)限控制,需要的朋友可以參考下
    2015-01-01
  • 使用PHP實現(xiàn)JWT的基本步驟

    使用PHP實現(xiàn)JWT的基本步驟

    PHP JWT(JSON Web Token)是一種用于身份驗證和授權(quán)的開放標(biāo)準(zhǔn),JWT是一個包含有關(guān)用戶或?qū)嶓w身份信息的安全令牌,本文給大家介紹了使用PHP實現(xiàn)JWT的基本步驟,需要的朋友可以參考下
    2023-12-12
  • Referer原理與圖片防盜鏈實現(xiàn)方法詳解

    Referer原理與圖片防盜鏈實現(xiàn)方法詳解

    這篇文章主要介紹了Referer原理與圖片防盜鏈實現(xiàn)方法,結(jié)合實例形式詳細(xì)分析了Referer頭信息原理與圖片防盜鏈判定、實現(xiàn)方法,并附帶一個Http請求封裝類,需要的朋友可以參考下
    2019-07-07
  • Linux下安裝PHP MSSQL擴展教程

    Linux下安裝PHP MSSQL擴展教程

    這篇文章主要介紹了Linux下安裝PHP MSSQL擴展教程,本文環(huán)境是SUSE Linux Enterprise Server 10 SP3,其它系統(tǒng)也類似,需要的朋友可以參考下
    2014-10-10
  • php遞歸如何獲取無限上級ID

    php遞歸如何獲取無限上級ID

    這篇文章主要介紹了php遞歸如何獲取無限上級ID,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論