ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析
PHP で配列キー値を交換するための 3 つの一般的なアルゴリズムには、それぞれ長所と短所があります。 array_flip(): シンプルで効率的ですが、値は一意である必要があり、多次元配列を処理できません。手動トラバーサル: 多次元配列を処理し、例外を制御できますが、コードが長くなり、効率も低下します。 ksort() array_keys(): あらゆるタイプの配列を処理し、ソート順序を制御できますが、効率は低くなります。実際のケースでは、array_flip() が最も効率的であることが示されていますが、多次元配列を扱う場合は、手動による走査の方が適切です。
PHP では、キーと値の位置を交換する必要がある場合があります。配列内の値。この記事では、3 つの一般的なアルゴリズムを検討し、それらの長所と短所を分析し、実際のケースを通じて比較します。
array_flip()
関数 array_flip()
は、キーと値を交換するために特に使用される組み込み PHP 関数です。 。その構文は非常に単純です:
$swappedArray = array_flip($array);
利点:
欠点:
$swappedArray = []; foreach ($array as $key => $value) { $swappedArray[$value] = $key; }#利点:
多次元配列を処理できる
#長いコードと実行効率が低い
を使用する これは、ksort を使用して行うことができます。 ()
および キーと値の交換を間接的に実装する関数: <pre class='brush:php;toolbar:false;'>$sortedArray = ksort($array);
$swappedArray = array_keys($sortedArray);</pre>
利点:
処理可能任意のタイプの配列
ソート順を制御できる実行効率が低い
$data = [ 'apple' => 'red', 'banana' => 'yellow', 'orange' => 'orange', ]; $start = microtime(true); $swappedArray1 = array_flip($data); $end = microtime(true); echo "array_flip(): " . ($end - $start) . " seconds\n"; $start = microtime(true); $swappedArray2 = []; foreach ($data as $key => $value) { $swappedArray2[$value] = $key; } $end = microtime(true); echo "Manual traversal: " . ($end - $start) . " seconds\n"; $start = microtime(true); ksort($data); $swappedArray3 = array_keys($data); $end = microtime(true); echo "ksort() + array_keys(): " . ($end - $start) . " seconds\n";
array_flip(): 0.000004006500244 seconds Manual traversal: 0.000020980834961 seconds ksort() + array_keys(): 0.000005984306335 seconds
結果からわかるように、
array_flip()関数は効率の面で優れています。多次元配列や異常な状況を処理する場合は、手動トラバーサルの方が適しています。
ksort() array_keys()
このメソッドの効率も非常に高いですが、ソート順序を制御することはできません。
以上がPHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。