配列変換メソッドのパフォーマンス比較
配列を別の配列に変換するには、foreach、lambda/closure 関数を使用した array_map などの手法をよく使用します。 、または静的関数を使用した array_map。この記事では、これらのアプローチのパフォーマンスの違いを評価します。
Foreach
Foreach は、配列を反復処理して各要素を個別に変換する古典的なメソッドです。結果から新しい配列を作成します。
$result = array(); foreach ($numbers as $number) { $result[] = $number * 10; } return $result;
Array_map with Lambda
Array_map とラムダ関数は、提供されたコールバックを使用して配列の要素を結合します。この場合、ラムダ関数は各要素を 10 倍します。
return array_map(function($number) { return $number * 10; }, $numbers);
Array_map with Static Function
Array_map はコールバックとして静的関数を使用することもできます。ここでは、「tenTimes」という名前の静的関数が各要素を乗算します。
function tenTimes($number) { return $number * 10; } return array_map('tenTimes', $numbers);
パフォーマンス分析
PHP 5.6、7、および HHVM を使用したベンチマークは、array_map メソッドは、ラムダ関数と静的関数の両方を使用しても、一貫してforeach。これは、array_map が速度のために最適化された内部関数を使用するためです。
ただし、array_map でクロージャを使用し、'use' で外部変数を導入する場合、パフォーマンスへの影響が大きくなります。このシナリオでは、名前付き関数を使用した foreach と array_map は同様に動作します。
結論
効率が最優先される場合は、foreach よりも array_map を使用する必要があります。外部変数でクロージャを使用する場合は、コードを最適化するか、代わりに名前付き関数で array_map を使用することを検討してください。最終的には、特定の要件とパフォーマンスに関する考慮事項によって選択が決まります。
以上がPHP のどの配列変換方法が最高のパフォーマンスを提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。