最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

測(cè)試了一下,還是可以執(zhí)行的,如下調(diào)用:
復(fù)制代碼 代碼如下:

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

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

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

//測(cè)量時(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;
}
//標(biāo)準(zhǔn)函數(shù)
function splitStrToArray($array)
{
return str_split(implode("", $array));
}
//測(cè)試數(shù)組
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
//開始測(cè)試
$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)用運(yùn)行時(shí)間為:" . (float)($mine_end - $mine_start) . " S <br />";
echo "標(biāo)準(zhǔn)的函數(shù)調(diào)用運(yùn)行時(shí)間為:" . (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)用運(yùn)行時(shí)間為:9.3936920166E-005 S
標(biāo)準(zhǔn)的函數(shù)調(diào)用運(yùn)行時(shí)間為: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ù)快得多,對(duì) str_split() 函數(shù)沒有印象?來看看手冊(cè)解釋:
str_split -- Convert a string to an array(將一個(gè)字符串轉(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讀取和寫入CSV文件的示例代碼

    PHP讀取和寫入CSV文件的示例代碼

    CSV(逗號(hào)分隔值)文件是使用逗號(hào)分隔信息的文本文件。該文件的每一行都是一條數(shù)據(jù)記錄,也就意味著它可以用于以表格的形式展現(xiàn)信息。本文主要介紹了PHP讀取和寫入CSV文件的方法,需要的可以參考一下
    2023-04-04
  • 一文詳解php中.env實(shí)現(xiàn)原理

    一文詳解php中.env實(shí)現(xiàn)原理

    在PHP中,.env文件是一種常見的配置文件格式,用于存儲(chǔ)應(yīng)用程序的環(huán)境變量,本文將給大家大家詳細(xì)的介紹一下php中.env實(shí)現(xiàn)原理,文中給出了簡單的示例代碼,需要的朋友可以參考下
    2024-01-01
  • PHP中$_SERVER的詳細(xì)參數(shù)與說明介紹

    PHP中$_SERVER的詳細(xì)參數(shù)與說明介紹

    PHP編程中經(jīng)常需要用到一些服務(wù)器的一些資料,特把$_SERVER的詳細(xì)參數(shù)整理下,方便以后使用
    2013-10-10
  • PHP XML操作的各種方法解析(比較詳細(xì))

    PHP XML操作的各種方法解析(比較詳細(xì))

    PHP提供了一整套的讀取 XML文件的方法,很容易的就可以編寫基于 XML的腳本程序。本章將要介紹 PHP與 XML的操作方法,并對(duì)幾個(gè)常用的 XML類庫做一些簡要介紹。
    2010-06-06
  • php 一元分詞算法

    php 一元分詞算法

    php 一元分詞算法
    2009-11-11
  • php連接函數(shù)implode與分割explode的深入解析

    php連接函數(shù)implode與分割explode的深入解析

    本篇文章是對(duì)php連接函數(shù)implode與分割explode進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳詳解

    PHP實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳詳解

    這篇文章主要介紹了PHP實(shí)現(xiàn)文件下載斷點(diǎn)續(xù)傳詳解,本文講解了載斷點(diǎn)續(xù)傳的實(shí)現(xiàn)理解,并給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • 自制PHP框架之路由與控制器

    自制PHP框架之路由與控制器

    本文給大家介紹的是自制php框架的第一步,學(xué)會(huì)使用路由和控制器,非常的詳細(xì),有需要的小伙伴可以參考下
    2017-05-05
  • PHP數(shù)組相加操作及與array_merge的區(qū)別淺析

    PHP數(shù)組相加操作及與array_merge的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于PHP數(shù)組相加操作以及與array_merge的區(qū)別,文中通過示例介紹的很詳細(xì),感興趣的朋友們可以參考學(xué)習(xí),有需要的下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • php支付寶接口用法分析

    php支付寶接口用法分析

    這篇文章主要介紹了php支付寶接口用法,以實(shí)例形式較為詳細(xì)的分析了php支付寶接口的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

洛南县| 紫金县| 共和县| 枞阳县| 北京市| 奉节县| 弋阳县| 新平| 苗栗县| 台江县| 浦江县| 崇文区| 社旗县| 墨江| 岳阳县| 晋州市| 敦化市| 那曲县| 滦南县| 隆子县| 长沙市| 榕江县| 沙坪坝区| 镇江市| 武城县| 南阳市| 枝江市| 丰都县| 青州市| 虞城县| 太谷县| 侯马市| 昌黎县| 南平市| 大新县| 南部县| 宁明县| 佛教| 海南省| 时尚| 石家庄市|