ホームページ  >  記事  >  バックエンド開発  >  PHP配列のキーと値の交換:パフォーマンスの比較と最適解の詳細な説明

PHP配列のキーと値の交換:パフォーマンスの比較と最適解の詳細な説明

PHPz
PHPzオリジナル
2024-05-04 13:51:011041ブラウズ

PHP 配列キー値交換の最適なソリューション: 組み込みの array_flip() 関数を使用します。時間計算量は O(n) です。配列が大きい場合、array_flip() のパフォーマンス上の利点がより明白になります。実際のケース: array_flip() を使用して、ショッピング カート内の製品名の配列を製品数量の配列に変換できます。

PHP 数组键值互换:性能对比及最优方案详解

PHP 配列のキーと値の交換: パフォーマンスの比較と最適なソリューションの詳細な説明

PHP では、配列は便利なデータ構造です。場合によっては、新しい配列を取得するために配列のキーと値を交換する必要があります。この記事では、3 つの一般的なアプローチを比較し、そのパフォーマンスとベスト プラクティスについて説明します。

方法 1: array_flip() 関数を使用する

$input = ['a' => 1, 'b' => 2, 'c' => 3];
$output = array_flip($input);

方法 2: array_combine()## を使用する# function

$keys = array_keys($input);
$values = array_values($input);
$output = array_combine($values, $keys);

方法 3: カスタム ループを使用する

$output = [];
foreach ($input as $key => $value) {
    $output[$value] = $key;
}

パフォーマンスの比較

Use

array_flip( ) 関数は組み込み関数であり、高度に最適化されているため、通常は最も高速です。 array_combine() 関数は、2 つの追加の関数呼び出し (array_keys()array_values()) を実行する必要があるため、少し遅くなります。カスタム ループは、配列全体を手動でループする必要があるため、最も遅くなります。

次の表は、3 つの方法のパフォーマンス比較をまとめたものです。

方法時間計算量array_flip()O(n)##array_combine()カスタム ループ
O(n * log( n ))
O(n^2)
ベスト プラクティス

ほとんどの場合、

キーと値の交換には

array_flip() 関数を使用することをお勧めします。小さいアレイの場合、パフォーマンスの違いは無視できます。ただし、より大きな配列の場合、array_flip() 関数の利点が明らかになります。 実際的なケース

ショッピング カート内の製品の名前を表す文字列の配列があるとします。キーが製品名、値が製品数量である別の配列を作成するには、array_flip()

関数を使用できます。

$cart = ['Apple', 'Banana', 'Orange', 'Apple', 'Banana'];

// 创建商品数量数组
$counts = array_flip($cart);
結果の配列 $counts

次のようになります:

Array
(
    [Apple] => 2
    [Banana] => 2
    [Orange] => 1
)

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

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