Formule pour trouver le chiffre le plus proche dans un tableau [Résolu]

Signaler
Messages postés
35
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020
-
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 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
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702
bonjour, "ça ne fonctionne pas": peux-tu être plus factuel et plus précis?
Messages postés
35
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020

Et bien, le chiffre qu'il me donne, ce n'est pas le bon
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702 >
Messages postés
35
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020

quel chiffre te donne-t'il, et quel chiffre attends-tu?
Messages postés
35
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020
>
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 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
Messages postés
12654
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 octobre 2020
702 >
Messages postés
35
Date d'inscription
samedi 14 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020

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