ホームページ >バックエンド開発 >PHPチュートリアル >PHP の配列変換方法は、foreach、Lambda を使用した array_map、または静的関数を使用した array_map のどれが最も速いですか?
Foreach、Lambda を使用した Array_Map、および静的関数を使用した Array_Map のパフォーマンスの比較
この記事では、配列: foreach の使用、lambda/closure 関数での array_map の使用、および array_map の使用「静的」関数/メソッドを使用します。
foreach
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
ラムダを使用したマップ
return array_map(function($number) { return $number * 10; }, $numbers);
文字列として渡される「静的」関数を使用したマップ参照
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
パフォーマンス ベンチマーク
さまざまな PHP バージョン (5.6、7、および HHVM) を使用して実施したベンチマークでは、次の結果が明らかになりました。
PHP Version | Foreach | MapClosure | MapNamed | MapClosureI | ForEachI |
---|---|---|---|---|---|
5.6 | 0.57 | 0.59 | 0.69 | 0.73 | 0.60 |
7 | 0.11 | 0.16 | 0.11 | 0.19 | 0.11 |
HHVM | 0.09 | 0.10 | 0.10 | 0.11 | 0.09 |
一般的に、ラムダ関数を使用した foreach と array_map が表示されます同様のパフォーマンス。静的関数を使用した Array_map はわずかに遅くなりました。 use ステートメントでクロージャを使用すると、顕著なパフォーマンスの低下が生じます。
結論
これらのアプローチのどちらを選択するかは、特定のユースケースと、コードの読みやすさ、保守性、そしてパフォーマンス。単純な変換の場合、ラムダ関数を使用した foreach および array_map は同等のパフォーマンスを提供し、簡潔な構文を提供します。より複雑な変換の場合、静的関数を使用した array_map を使用すると、潜在的なパフォーマンスのトレードオフはありますが、よりクリーンで再利用可能なコード構造が可能になります。
以上がPHP の配列変換方法は、foreach、Lambda を使用した array_map、または静的関数を使用した array_map のどれが最も速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。