PHP 配列のキーと値の交換には、単純なキーと値の交換と逐次的なキーと値の交換の 2 つのアルゴリズムがあります。前者は配列を走査し、キー値を 1 対 1 対応で新しい配列に格納します。後者は、array_values() 関数と array_keys() 関数を使用してキー値を順番に交換します。パフォーマンス テストでは、配列が大きい場合、連続的なキーと値のスワップ アルゴリズムが単純なキーと値のスワップ アルゴリズムよりも大幅に高速であることが示されています。
PHP では、配列は一種のストレージと管理です。データの。場合によっては、配列のキー値を交換する必要がある場合があります。これは、次のアルゴリズムを通じて実現できます。
function swapArrayKeysValues(array $array): array { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; }
配列キー値の順序でキー値交換を実行するには、次のアルゴリズムを使用できます:
function orderedSwapArrayKeysValues(array $array): array { $values = array_values($array); $keys = array_keys($array); return array_combine($values, $keys); }
2 つのアルゴリズムのパフォーマンスを比較するために10,000 個の要素を含む配列を比較します。 要素の配列のベンチマークが行われました:
$array = range(1, 10000); // 简单键值互换 $start = microtime(true); $result = swapArrayKeysValues($array); $end = microtime(true); echo "简单键值互换耗时:" . ($end - $start) . " 秒\n"; // 按序键值互换 $start = microtime(true); $result = orderedSwapArrayKeysValues($array); $end = microtime(true); echo "按序键值互换耗时:" . ($end - $start) . " 秒\n";
出力:
简单键值互换耗时:0.034162014007568 秒 按序键值互换耗时:0.0016639256477356 秒
パフォーマンス分析により、シーケンシャル キーと値の交換アルゴリズムが単純なキーと値の交換アルゴリズムよりも大幅に高速であることが示されました。スワップアルゴリズム。
以上がPHP 配列のキーと値の交換: 逐次的なキーと値の交換のアルゴリズムとパフォーマンスの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。