Formule pour trouver le chiffre le plus proche dans un tableau

Signaler
Messages postés
25
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
4 avril 2020
-
yg_be
Messages postés
10416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2020
-
Bonjour,

J'ai un petit problème avec mon code pour trouver le chiffre le plus proche d'une valeur recherché dans un tableau.

Pourriez-vous m'aider à trouver où ça ne fonctionne pas?

Voici mon code :

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

        $recherche = 0.83333333333333;
        $array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
        $valPlusProche = getClosest($recherche,$array);

        sort($array);
        print_r($array);
        echo "<br> Valeur cherchée : " . $recherche;
        echo "<br>Plus proche résultat : "  . $valPlusProche;
?>


Merci

1 réponse

Messages postés
10416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2020
586
bonjour, "ça ne fonctionne pas": peux-tu être plus factuel et plus précis?
Anonyme1234_7288
Messages postés
25
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
4 avril 2020

Et bien, le chiffre qu'il me donne, ce n'est pas le bon
yg_be
Messages postés
10416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2020
586 > Anonyme1234_7288
Messages postés
25
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
4 avril 2020

quel chiffre te donne-t'il, et quel chiffre attends-tu?
Anonyme1234_7288
Messages postés
25
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
4 avril 2020
> yg_be
Messages postés
10416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2020

C'est bizarre, ça marche. Mais j'ai un autre problème. J'aimerais affiché le tableau contenant les chiffres qui ont été utilisé pour calculer ce ratio. Comme par exemple, le programme va affiché :

[6540] => Array
(
[calc] => 0.94043887147335
[valeurs] => Array
(
[0] => 20
[1] => 29
[2] => 30
[3] => 22
)
)

[6542] => Array
(
[calc] => 1.0815047021944
[valeurs] => Array
(
[0] => 23
[1] => 29
[2] => 30
[3] => 22
)
)

Et etc...

Mais ce que j'aimerais qu'il m'affiche c'est par exemple pour le premier du tableau ci-dessus:

"Engrenage 20, 29, 30, 22"

Et pour le deuxième du tableau ci-dessus :

"Engrenage 23, 29, 30, 22"

Bref, je crois que tu as compris.

Si tu as des questions n'hésite pas
yg_be
Messages postés
10416
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 avril 2020
586 > Anonyme1234_7288
Messages postés
25
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
4 avril 2020

je pense que tu peux réaliser cela en utilisant echo dans une boucle.