PHP 交換配列キー値: メソッドの比較とパフォーマンスの最適化

PHPz
リリース: 2024-05-04 15:06:01
オリジナル
499 人が閲覧しました

PHP で配列のキー値を交換する場合、メソッドのパフォーマンスは配列のサイズによって異なります。小さい配列の場合は、array_flip() の方が高速ですが、大きい配列の場合は、unset() と [] 構文または foreach ループを使用する方が効率的です。最適化のヒントには、適切なアルゴリズムの選択、参照を使用してコピーを回避すること、unset() を使用してメモリ割り当てを削減することが含まれます。

PHP 交换数组键值:方法比较和性能优化

PHP の配列キー値の交換: メソッドの比較とパフォーマンスの最適化

キーと値を交換する必要がある場合PHP 配列では、いくつかのメソッドが利用可能です。この記事では、これらのメソッドのパフォーマンスを比較し、効率を向上させるための最適化のヒントをいくつか紹介します。

メソッド

##array_flip()

array_flip()この関数は、次のキーの合計を直接交換します。配列の値。使用法は次のとおりです。

$flipped_array = array_flip($array);
ログイン後にコピー

unset() と [] 構文を混合します

unset()関数を使用して、古いキーを削除し、角かっこを含む割り当て構文を使用して新しいキーを追加します。

unset($array['old_key']); $array['new_key'] = $array['old_value'];
ログイン後にコピー

foreach() ループ

は配列を走査し、一時変数を使用してキーと値を交換できます。

foreach ($array as $key => $value) { $temp = $key; $key = $value; $value = $temp; }
ログイン後にコピー

パフォーマンスの比較

小さい配列 (アイテム数が 100 未満) の場合、

array_flip()は他のメソッドよりも高速である可能性があります。ただし、より大きな配列の場合は、unset()[]構文を組み合わせたり、foreachループを使用した方が効率的であることがよくあります。

$array_size = 100000; $array = range(1, $array_size); $time_array_flip = microtime(true); $flipped_array_array_flip = array_flip($array); $time_array_flip = microtime(true) - $time_array_flip; $time_unset_array = microtime(true); foreach ($array as $key => $value) { unset($array[$key]); $array[$value] = $key; } $time_unset_array = microtime(true) - $time_unset_array; $time_foreach = microtime(true); foreach ($array as $key => &$value) { $temp = $key; $key = $value; $value = $temp; } unset($value); // PHP 8 之前的版本需要手动释放引用 $time_foreach = microtime(true) - $time_foreach; printf("array_flip(): %.6fs\n", $time_array_flip); printf("unset(): %.6fs\n", $time_unset_array); printf("foreach(): %.6fs\n", $time_foreach);
ログイン後にコピー

結果:

    小さな配列 (100 項目) の場合、
  • array_flip()が最も高速です。
  • 大きな配列 (10,000 項目を超える) の場合は、
  • unset()および[]構文またはforeachループの方が効率的です。

最適化のヒント

  • 適切なアルゴリズムの選択:サイズに基づいて最高のパフォーマンスを持つアルゴリズムを選択してください。配列。
  • 不必要なコピーを避ける:参照 (&) を使用して、ループ内のデータのコピーを避けます。
  • メモリ割り当てを削減します。unset()を使用して、ガベージ コレクションの必要性を減らします。

以上がPHP 交換配列キー値: メソッドの比較とパフォーマンスの最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!