Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencari Nilai Terdekat dalam Array?

Bagaimana untuk Mencari Nilai Terdekat dalam Array?

DDD
DDDasal
2024-11-26 21:49:14751semak imbas

How to Find the Closest Value in an Array?

Padanan Nilai Terhampir dalam Tatasusunan

Memandangkan tatasusunan nilai dan nilai sasaran, keperluan biasa adalah untuk mendapatkan nilai padanan yang paling hampir dalam tatasusunan. Ini boleh terbukti sangat berguna apabila berurusan dengan data yang tidak tepat atau apabila padanan tepat tidak tersedia.

Penyelesaian:

Untuk menentukan nilai padanan yang paling hampir, algoritma carian berulang boleh diambil bekerja. Berikut ialah fungsi PHP yang melaksanakan pendekatan ini:

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

Fungsi ini beroperasi dengan membandingkan nilai sasaran secara berulang dengan setiap elemen dalam tatasusunan. Ia mengekalkan pembolehubah $closst untuk menjejaki nilai padanan terdekat yang ditemui. Untuk setiap perbandingan, ia mengira perbezaan mutlak antara sasaran dan elemen tatasusunan semasa. Jika perbezaan adalah lebih kecil daripada perbezaan yang direkodkan sebelum ini, ia mengemas kini pembolehubah $closest.

Contoh:

Menggunakan tatasusunan contoh yang disediakan:

$array = [0, 5, 10, 11, 12, 20];

Carian berikut boleh dilakukan:

  • getClosest(0, $array); // mengembalikan 0
  • getClosest(3, $array); // mengembalikan 5
  • getClosest(14, $array); // mengembalikan 12

Dengan mengulang tatasusunan dan menilai setiap elemen, algoritma ini cekap mencari nilai padanan yang paling hampir dengan sasaran.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Terdekat dalam Array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn