ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列のキーと値の交換: 逐次的なキーと値の交換のアルゴリズムとパフォーマンスの分析

PHP 配列のキーと値の交換: 逐次的なキーと値の交換のアルゴリズムとパフォーマンスの分析

WBOY
WBOYオリジナル
2024-05-03 13:15:01811ブラウズ

PHP 配列のキーと値の交換には、単純なキーと値の交換と逐次的なキーと値の交換の 2 つのアルゴリズムがあります。前者は配列を走査し、キー値を 1 対 1 対応で新しい配列に格納します。後者は、array_values() 関数と array_keys() 関数を使用してキー値を順番に交換します。パフォーマンス テストでは、配列が大きい場合、連続的なキーと値のスワップ アルゴリズムが単純なキーと値のスワップ アルゴリズムよりも大幅に高速であることが示されています。

PHP 数组键值互换:按序键值互换的算法与性能分析

PHP 配列キー値交換: シーケンシャル キー値交換のアルゴリズムとパフォーマンス分析

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 サイトの他の関連記事を参照してください。

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