ホームページ  >  記事  >  バックエンド開発  >  PHP配列のキーと値の変換速度競争

PHP配列のキーと値の変換速度競争

WBOY
WBOYオリジナル
2024-05-01 21:33:02718ブラウズ

PHP では、配列キー値を変換するための最速のソート方法は次のとおりです: array_flip(): 0.00192 秒 array_combine(): 0.00506 秒 array_map(): 0.01369 秒 foreach() array_keys(): 0.01332 秒 カスタム ループ: 0.00600秒

PHP 数组键值转换速度大比拼

PHP配列キー値変換速度競争

配列を処理してキー値を効率的に変換することが重要ですPHP で。この記事では、いくつかの一般的なキーと値の変換方法の間で速度を競い合い、そのパフォーマンスを理解するのに役立つ実践的なケースを提供します。

#テスト環境

##PHP 8.1
  • macOS Catalina 10.15
  • テスト配列サイズ: 1,000,000
  • #メソッド

次のメソッドを比較します:

array_flip()
  • array_combine()
  • array_map()
  • foreach()
  • および
  • array_keys()カスタム ループ
  • 実際のケース

$arr = range(1, 1000000);

// 使用 array_flip()
$start = microtime(true);
$flipped = array_flip($arr);
$end = microtime(true);
$time_array_flip = $end - $start;

// 使用 array_combine()
$keys = range('a', 'z');
$start = microtime(true);
$combined = array_combine($keys, $arr);
$end = microtime(true);
$time_array_combine = $end - $start;

// 使用 array_map()
$start = microtime(true);
$mapped = array_map(function($x) { return [$x, $x]; }, $arr);
$end = microtime(true);
$time_array_map = $end - $start;

// 使用 foreach() 和 array_keys()
$start = microtime(true);
$flipped = [];
$keys = array_keys($arr);
foreach ($keys as $key) { $flipped[$key] = $arr[$key]; }
$end = microtime(true);
$time_foreach = $end - $start;

// 使用自定义循环
$start = microtime(true);
$flipped = [];
for ($i = 0; $i < count($arr); $i++) { $flipped[$arr[$i]] = $arr[$i]; }
$end = microtime(true);
$time_custom = $end - $start;

// 显示结果
echo "array_flip(): $time_array_flip s\n";
echo "array_combine(): $time_array_combine s\n";
echo "array_map(): $time_array_map s\n";
echo "foreach() + array_keys(): $time_foreach s\n";
echo "自定义循环: $time_custom s\n";
結果

# #メソッド時間 (秒)##array_flip()0.00192 array_combine()0.00506array_map()0.01369foreach() array_keys ()0.01332カスタム ループ0.00600結論
私たちのテストによると、配列キー値を変換するには

array_flip() が最も速い方法ですが、array_map()

foreach() array_keys() も優れたパフォーマンスを発揮します。大規模な配列の場合は、最高のパフォーマンスと効率を提供する array_flip() が最適な選択です。

以上がPHP配列のキーと値の変換速度競争の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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