PHP 配列キー値交換の最適なソリューション: 組み込みの array_flip() 関数を使用します。時間計算量は O(n) です。配列が大きい場合、array_flip() のパフォーマンス上の利点がより明白になります。実際のケース: array_flip() を使用して、ショッピング カート内の製品名の配列を製品数量の配列に変換できます。
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()) を実行する必要があるため、少し遅くなります。カスタム ループは、配列全体を手動でループする必要があるため、最も遅くなります。
時間計算量 | |
---|---|
O(n) | |
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 サイトの他の関連記事を参照してください。