ホームページ >バックエンド開発 >PHPチュートリアル >順序付き配列で最も近い値を効率的に見つけるにはどうすればよいですか?

順序付き配列で最も近い値を効率的に見つけるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-25 18:06:11205ブラウズ

How to Efficiently Find the Closest Value in an Ordered Array?

配列内の最も近い値の検索

データ処理では、配列内で最も一致する値を検索することが、さまざまなアプリケーションにとって不可欠であることがよくあります。ターゲット値と順序付き配列が与えられた場合、ターゲットに最も近い要素を効率的に見つけるにはどうすればよいですか?

解決策:

配列内で最も近い値を見つけるには、次のようにします。配列内の各要素を反復処理して、ターゲット値と各要素の差を計算できます。差が最も小さい要素が、最もよく一致する値です。このタスクの PHP 関数は次のとおりです。

function getClosest($search, $arr) {
   $closest = null;
   foreach ($arr as $item) {
      if ($closest === null || abs($search - $closest) > abs($item - $search)) {
         $closest = $item;
      }
   }
   return $closest;
}

この関数は、検索するターゲット値と検索する数値の配列という 2 つのパラメーターを受け取ります。ターゲット値と配列内の各要素間の絶対差を計算します。絶対差が最小の要素は $closest 変数に保存され、最終的に結果として返されます。

使用法:

次の配列を考えてみましょう:

array(0, 5, 10, 11, 12, 20)

ターゲット値 0 で検索すると、関数は 0 を返します。ターゲット値 3 の場合、関数は返します。 5. 同様に、ターゲット値が 14 の場合、関数は 12 を返します。

以上が順序付き配列で最も近い値を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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