ホームページ php教程 php手册 PHP 関数の実行効率の小さな比較

PHP 関数の実行効率の小さな比較

Jun 21, 2016 am 08:56 AM
array float gt split string

これは、元の配列内のすべての数値を「単一」の数字に「分割」することを意味します。
以下は私が書いた関数です:

コードをコピーします コードは次のとおりです:


関数 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}) ;
}
}
$new_array を返す
}


テスト後も動作するので、次のように呼び出します:

コードをコピーします コードは次のとおりです:


//テスト配列
$data = array(12, 43, 87, 45, 98, 74, 83, 67, 12);
var_dump(splitStrToArray_mine($data)); 🎜>
出力結果は次のとおりです:



コードをコピーします コードは次のとおりです:

配列(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"
文字列(1) "2"
}


実行は良好ですが、標準的な答えを見ると驚くでしょう。関数には次の 1 つの文しかありません。


コードをコピーします
コードは次のとおりです:

//標準関数 function splitStrToArray($array) { return str_split(implode("", $array))


そこで、独自の関数と標準関数の間の動作効率のギャップをテストするスクリプトを作成しました。その中には、正確な時刻サポートを提供する microtime_float() 関数があります。



コードをコピーします。

コードは次のとおりです:

//時間を計測する関数function microtime_float() { list($usec, $sec) =explode(" ", microtime()); return ((float) $usec + (float)$sec);

}

//カスタム関数
function splitStrToArray_mine($array)
{
$new_array = array(); $value として配列)
{
$value = (string)$value;
$len = strlen($value);
for($i = 0; $i array_push($new_array, $value{$i});
}
}
return $new_array;
//標準関数
function splitStrToArray($array)
{
return str_split(implode("", $array));
}
//配列をテストします
$data = array(12, 43 , 87, 45, 98, 74, 83, 67, 12);
//テストの開始
$mine_start = microtime_float();
splitStrToArray_mine($data); ;
//標準関数呼び出し
$sta_start = microtime_float();
$sta_end = microtime_float()
echo "独自の関数呼び出しの実行時間は次のとおりです。 " . (float)($mine_end - $mine_start) . " S
";
echo "標準の関数呼び出しの実行時間は次のとおりです: " . (float)($sta_end - $sta_start) . " S
";
$multiple = (int)((float)($mine_end - $mine_start) / (float)($sta_end - $sta_start));
echo "前者です後者: " . $multiple . " 回! ";



出力を見てみましょう:

独自の関数呼び出しの実行時間は: 9.3936920166E-005 S
標準関数呼び出しの実行時間は: 2.69412994385E -005 S
前者は後者:3回!
ページを複数回更新すると、標準関数の実行効率は独自関数の基本的に 3 倍であることがわかります。もちろん、標準関数は PHP の組み込み関数 str_split() や implode() を使用するため、自分で関数を記述するよりもはるかに高速です。 str_split() 関数についての印象はありませんか。マニュアルの説明を見てみましょう:
str_split -- 文字列を配列に変換します (文字列を配列に変換します)

関数の説明:


array str_split ( string string [ , int split_length] )

コードをコピー

コードは次のとおりです:


文字列を配列に変換します。オプションのsplit_lengthパラメータが指定されている場合、返される配列は、それぞれの長さがsplit_lengthであるチャンクに分割されます。それ以外の場合、各チャンクの長さは1文字になります。
split_length が 1 未満の場合は FALSE が返されます。split_length の長さが文字列の長さを超える場合は、文字列全体が最初 (唯一) の配列要素として返されます。


例 1. str_split() の使用例

复制代 代码如下:


$str = "こんにちは";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
?>


出力は次のようになります:

复制代 代码如下:


配列
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] =>
[5] =>F
[8] => [9] => e
[10] => n
[11] => d
)
配列
(
[0] => 🎜>[1] => ロー
[2] => 終了
)





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Jul 24, 2023 pm 07:55 PM

Java の String.valueOf() 関数を使用して基本データ型を文字列に変換する Java 開発で基本データ型を文字列に変換する必要がある場合、一般的な方法は String クラスの valueOf() 関数を使用することです。この関数は、基本データ型のパラメータを受け入れ、対応する文字列表現を返すことができます。この記事では、基本的なデータ型変換に String.valueOf() 関数を使用する方法を検討し、いくつかのコード例を提供します。

float の最大値はいくらですか? float の最大値はいくらですか? Oct 11, 2023 pm 05:54 PM

float の最大値: 1. C 言語の float の最大値は 3.40282347e+38 IEEE 754 規格によれば、float 型の最大指数は 127、仮数部の桁数は 23 です。このように、最大​​浮動小数点数は 3.40282347 e+38 になります。 2. Java 言語では、最大浮動小数点数は 3.4028235E+38 です。 3. Python 言語では、最大浮動小数点数は 1.7976931348623157e+308 です。

char配列を文字列に変換する方法 char配列を文字列に変換する方法 Jun 09, 2023 am 10:04 AM

char配列をstringに変換する方法:代入によって実現できます {char a[]=" abc d\0efg ";string s=a;} 構文を使用して、char配列にstringに値を直接代入させて実行します変換を完了するためのコード。

Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Java の String.replace() 関数を使用して、文字列内の文字 (文字列) を置換します。 Jul 25, 2023 pm 05:16 PM

Java の String.replace() 関数を使用して文字列内の文字 (文字列) を置換する Java では、文字列は不変オブジェクトです。つまり、文字列オブジェクトが作成されると、その値は変更できません。ただし、文字列内の特定の文字または文字列を置換する必要がある状況が発生する場合があります。現時点では、Java の String クラスの replace() メソッドを使用して文字列置換を実装できます。 String クラスの replace() メソッドには 2 つのタイプがあります。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

2wワード詳細説明文字列、yyds 2wワード詳細説明文字列、yyds Aug 24, 2023 pm 03:56 PM

皆さんこんにちは。今日は Java の基本知識である String についてお話します。 String クラスの重要性は言うまでもなく、バックエンド開発で最もよく使用されるクラスであるため、説明する必要があります。

C# の Array.Sort 関数を使用して配列を並べ替える C# の Array.Sort 関数を使用して配列を並べ替える Nov 18, 2023 am 10:37 AM

タイトル: Array.Sort 関数を使用して C# で配列を並べ替える例 本文: C# では、配列は一般的に使用されるデータ構造であり、多くの場合、配列を並べ替える必要があります。 C# には Array クラスが用意されており、このクラスには配列を簡単に並べ替えるための Sort メソッドがあります。この記事では、C# で Array.Sort 関数を使用して配列を並べ替える方法を示し、具体的なコード例を示します。まず、Array.Sort 関数の基本的な使用法を理解する必要があります。 Array.So

See all articles