ホームページ  >  記事  >  バックエンド開発  >  PHP 配列のキー値が逆になり、パフォーマンス PK に大きな影響を与えます

PHP 配列のキー値が逆になり、パフォーマンス PK に大きな影響を与えます

WBOY
WBOYオリジナル
2024-05-04 13:21:011003ブラウズ

array_flip() を使用して配列キー値を逆にすることによるパフォーマンスへの影響: 実行時間は配列サイズに応じて O(n^2) 増加します。実際のケース: 値によって連想配列のキーを取得します。

PHP 数组键值颠倒,性能影响大 PK

PHP 配列のキーと値の逆転: パフォーマンスと実際のケースへの影響

PHP では、配列は一般的に使用されるデータ構造です。 、配列のキー値を逆にする必要がある場合があります。これは一般的な操作ですが、パフォーマンスへの影響は見落とされがちです。

PHP は、これを行うための array_flip() 関数を提供します。この関数は、元の配列のキーが反転された新しい配列を返します。

さまざまなサイズの配列で array_flip() 関数を使用した場合のパフォーマンスを比較してみましょう:

$array1 = range(0, 9999);
$array2 = range(0, 99999);
$array3 = range(0, 999999);

$time_start = microtime(true);
$flipped_array1 = array_flip($array1);
$time_end = microtime(true);
$elapsed_time1 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array2 = array_flip($array2);
$time_end = microtime(true);
$elapsed_time2 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array3 = array_flip($array3);
$time_end = microtime(true);
$elapsed_time3 = $time_end - $time_start;

echo "執行時間:\n";
echo "10,000 個元素:$elapsed_time1 秒\n";
echo "100,000 個元素:$elapsed_time2 秒\n";
echo "1,000,000 個元素:$elapsed_time3 秒\n";

結果から、 array_flip( ) 配列のサイズが大きくなると、関数の実行時間も長くなります。これは、array_flip() 関数が内部でネストされたループを使用しており、その複雑さが O(n^2) であるためです。

実際的なケース

array_flip() 関数を使用する実際的なケースは、連想配列のキー値を反転することです。キーを取得するために値を渡すことができることを確認します。例:

$associated_array = [
    "red" => "#FF0000",
    "blue" => "#0000FF",
    "green" => "#00FF00",
];

$flipped_array = array_flip($associated_array);

echo $flipped_array["#00FF00"]; // 輸出:green

以上がPHP 配列のキー値が逆になり、パフォーマンス PK に大きな影響を与えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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