ホームページ > バックエンド開発 > PHPチュートリアル > 配列要素をチェックする場合、`isset` は `in_array` より高速ですか?

配列要素をチェックする場合、`isset` は `in_array` より高速ですか?

Susan Sarandon
リリース: 2024-11-11 11:02:03
オリジナル
466 人が閲覧しました

Is `isset` Faster than `in_array` for Checking Array Elements?

速度の比較: in_array と isset

大規模な配列を扱う場合、コードのパフォーマンスを最適化することが重要です。 in_array 関数と isset コンストラクトのどちらが速いですか?

in_array:

この関数は、配列を反復処理して一致するものを見つける線形検索を実行します。時間計算量は O(n) で、n は配列のサイズです。一方、

isset:

isset はハッシュを使用します。検索して、特定のキーが連想配列に存在するかどうかを判断します。これにより、in_array よりもはるかに速くなり、一定の時間計算量は O(1) になります。

パフォーマンス テスト:

この速度の違いを実証するには、次のテストを実行できます。ベンチマーク:

$a = array();
for ($i = 0; $i < 10000; ++$i) {
    $v = rand(1, 1000000);
    $a[$v] = $v;
}

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    isset($a[rand(1, 1000000)]);
}

$total_time = microtime(true) - $start;
echo "isset: " . number_format($total_time, 6) . PHP_EOL;

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    in_array(rand(1, 1000000), $a);
}

$total_time = microtime(true) - $start;
echo "in_array: " . number_format($total_time, 6) . PHP_EOL;
ログイン後にコピー

結果:

テスト結果は、isset が in_array よりも大幅に高速であることを示し、定数時間計算量の利点を示しています。

結論:

の存在を確認する場合配列内の要素の場合は、パフォーマンスが高速であるため、 isset が推奨される選択肢です。ただし、要素の順序が重要な場合は、要素の順序を保持する in_array を使用する必要があります。

以上が配列要素をチェックする場合、`isset` は `in_array` より高速ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート