Maison  >  Article  >  développement back-end  >  Comment trouver la valeur la plus proche dans un tableau ?

Comment trouver la valeur la plus proche dans un tableau ?

DDD
DDDoriginal
2024-11-26 21:49:14714parcourir

How to Find the Closest Value in an Array?

Correspondance de valeur la plus proche dans un tableau

Étant donné un tableau de valeurs et une valeur cible, une exigence courante est de récupérer la valeur correspondante la plus proche dans le tableau. Cela peut s'avérer particulièrement utile lorsqu'il s'agit de données imprécises ou lorsqu'une correspondance exacte n'est pas disponible.

Solution :

Pour déterminer la valeur correspondante la plus proche, un algorithme de recherche itératif peuvent être employés. Voici une fonction PHP qui implémente cette approche :

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

Cette fonction fonctionne en comparant de manière itérative la valeur cible avec chaque élément du tableau. Il conserve une variable $closest pour suivre la valeur correspondante la plus proche rencontrée. Pour chaque comparaison, il calcule la différence absolue entre la cible et l'élément actuel du tableau. Si la différence est inférieure à la différence enregistrée précédemment, il met à jour la variable $closest.

Exemple :

En utilisant l'exemple de tableau fourni :

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

Les recherches suivantes peuvent être effectuées :

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

En parcourant le tableau et en évaluant chaque élément, cet algorithme trouve efficacement la valeur correspondante la plus proche de la cible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn