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

Bagaimana untuk Mencari Nilai Terdekat dalam Array?

DDD
Lepaskan: 2024-11-26 21:49:14
asal
808 orang telah melayarinya

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;
}
Salin selepas log masuk

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];
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan