ホームページ  >  記事  >  バックエンド開発  >  PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

王林
王林オリジナル
2024-05-04 22:39:02363ブラウズ

PHP で配列キー値を交換するための 3 つの一般的なアルゴリズムには、それぞれ長所と短所があります。 array_flip(): シンプルで効率的ですが、値は一意である必要があり、多次元配列を処理できません。手動トラバーサル: 多次元配列を処理し、例外を制御できますが、コードが長くなり、効率も低下します。 ksort() array_keys(): あらゆるタイプの配列を処理し、ソート順序を制御できますが、効率は低くなります。実際のケースでは、array_flip() が最も効率的であることが示されていますが、多次元配列を扱う場合は、手動による走査の方が適切です。

PHP 数组键值互换:常见算法的优缺点剖析

PHP 配列のキーと値の交換: 一般的なアルゴリズムの長所と短所の分析

PHP では、キーと値の位置を交換する必要がある場合があります。配列内の値。この記事では、3 つの一般的なアルゴリズムを検討し、それらの長所と短所を分析し、実際のケースを通じて比較します。

1. 組み込み array_flip() 関数

array_flip() は、キーと値を交換するために特に使用される組み込み PHP 関数です。 。その構文は非常に単純です:

$swappedArray = array_flip($array);

利点:

  • 使いやすく、1 行のコードで交換を完了できます
  • 高効率

欠点:

  • 値は一意である必要があります。そうでないとキーが上書きされます
  • 多次元を処理できません配列

2. 手動トラバーサル

##手動トラバーサルを使用してキーと値の交換を実現できます:

$swappedArray = [];
foreach ($array as $key => $value) {
    $swappedArray[$value] = $key;
}

#利点:

多次元配列を処理できる
    #例外を制御できる
  • #欠点:

#長いコードと実行効率が低い

    3.
  • ksort()
array_keys()

を使用する これは、ksort を使用して行うことができます。 () および

array_keys()

キーと値の交換を間接的に実装する関数: <pre class='brush:php;toolbar:false;'>$sortedArray = ksort($array); $swappedArray = array_keys($sortedArray);</pre>利点:

処理可能任意のタイプの配列

ソート順を制御できる
  • 欠点:

実行効率が低い

    実際的なケース
  • 以下は、これら 3 つのアルゴリズムのパフォーマンスを比較する実際的なケースです:
$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 サイトの他の関連記事を参照してください。

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