Accélérer notre script PHP

Résolu/Fermé
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021 - 27 mars 2020 à 23:31
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 28 mars 2020 à 08:30
Bonjour,

Le code de mon programme est extrêmement long à exécuter, donc pouvez-vous m'aider de sorte à ce qu'il remplisse les mêmes fonctions mais en moins de temps?

P.S. : Mon programme fonctionne de sorte qu'il calcule tous les ratios possible et il va prendre le ratio le plus près du nombre de la variable $recherche. Par la suite, il affiche les nombres qui ont été utilisé pour calculer le ratio.

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;
    }
    $array2 = array();
    $valPlusProche = getClosest($recherche, $array2);
    $gear1 = [20, 20, 22, 23, 24, 24, 25, 26, 26, 29, 29, 30, 30, 31, 32, 33, 34, 35, 36, 36, 36, 36, 37, 39, 40, 41, 42, 43, 44, 45, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 53, 55, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 85, 87, 89, 89, 90, 91, 92, 93, 93, 95, 97, 98, 99, 100, 101, 103, 103, 107, 109, 111, 113];
    $gear2 = [20, 20, 22, 23, 24, 24, 25, 26, 26, 29, 29, 30, 30, 31, 32, 33, 34, 35, 36, 36, 36, 36, 37, 39, 40, 41, 42, 43, 44, 45, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 53, 55, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 85, 87, 89, 89, 90, 91, 92, 93, 93, 95, 97, 98, 99, 100, 101, 103, 103, 107, 109, 111, 113];
    $gear3 = [20, 20, 22, 23, 24, 24, 25, 26, 26, 29, 29, 30, 30, 31, 32, 33, 34, 35, 36, 36, 36, 36, 37, 39, 40, 41, 42, 43, 44, 45, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 53, 55, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 85, 87, 89, 89, 90, 91, 92, 93, 93, 95, 97, 98, 99, 100, 101, 103, 103, 107, 109, 111, 113];
    $gear4 = [20, 20, 22, 23, 24, 24, 25, 26, 26, 29, 29, 30, 30, 31, 32, 33, 34, 35, 36, 36, 36, 36, 37, 39, 40, 41, 42, 43, 44, 45, 45, 46, 46, 47, 48, 48, 49, 50, 50, 51, 52, 53, 55, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 65, 66, 67, 69, 70, 71, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 85, 87, 89, 89, 90, 91, 92, 93, 93, 95, 97, 98, 99, 100, 101, 103, 103, 107, 109, 111, 113];
    
    $array = array();
    function all($pos1, $pos2, $pos3, $pos4){
        global $array;
        global $gear4;
        global $recherche;
        $recherche = 0.4935278483;
        array_unshift($array, ($pos1/$pos2)*($pos3/$pos4));
        global $valPlusProche;
        $valPlusProche = getClosest($recherche, $array);  
        
    }
    function aff($pos1, $pos2, $pos3, $pos4){
        global $valPlusProche, $gear1, $gear2, $gear3, $gear4, $recherche, $array;
        if($array[0] == $valPlusProche){
            global $calc;
            $calc = "Engrenages ". $gear1[$pos1]. ", ". $gear2[$pos2]. ", ". $gear3[$pos3]. ", ". $gear4[$pos4];
        }
    }

    function affgear3($pos1, $pos2, $pos3, $pos4){
        global $gear1, $gear2, $gear3, $gear4;
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3, $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
        return all($gear1[$pos1], $gear2[$pos2], $gear3[$pos3], $gear4[$pos4]);
        echo aff($pos1, $pos2, $pos3,  $pos4);
    }

    function affgear4($pos1, $pos2, $pos3) {
        global $gear4;
        affgear3($pos1, $pos2, $pos3, 0);
        affgear3($pos1, $pos2, $pos3, 1);
        affgear3($pos1, $pos2, $pos3, 2);
        affgear3($pos1, $pos2, $pos3, 3);
        affgear3($pos1, $pos2, $pos3, 4);
        affgear3($pos1, $pos2, $pos3, 5);
        affgear3($pos1, $pos2, $pos3, 6);
        affgear3($pos1, $pos2, $pos3, 7);
        affgear3($pos1, $pos2, $pos3, 8);
        affgear3($pos1, $pos2, $pos3, 9);
        affgear3($pos1, $pos2, $pos3, 10);
        affgear3($pos1, $pos2, $pos3, 11);
        affgear3($pos1, $pos2, $pos3, 12);
        affgear3($pos1, $pos2, $pos3, 13);
        affgear3($pos1, $pos2, $pos3, 14);
        affgear3($pos1, $pos2, $pos3, 15);
        affgear3($pos1, $pos2, $pos3, 16);
        affgear3($pos1, $pos2, $pos3, 17);
        affgear3($pos1, $pos2, $pos3, 18);
        affgear3($pos1, $pos2, $pos3, 19);
        affgear3($pos1, $pos2, $pos3, 20);
        affgear3($pos1, $pos2, $pos3, 21);
        affgear3($pos1, $pos2, $pos3, 22);
        affgear3($pos1, $pos2, $pos3, 23);
        affgear3($pos1, $pos2, $pos3, 24);
        affgear3($pos1, $pos2, $pos3, 25);
        affgear3($pos1, $pos2, $pos3, 26);
        affgear3($pos1, $pos2, $pos3, 27);
        affgear3($pos1, $pos2, $pos3, 28);
        affgear3($pos1, $pos2, $pos3, 29);
        affgear3($pos1, $pos2, $pos3, 30);
        affgear3($pos1, $pos2, $pos3, 31);
        affgear3($pos1, $pos2, $pos3, 32);
        affgear3($pos1, $pos2, $pos3, 33);
        affgear3($pos1, $pos2, $pos3, 34);
        affgear3($pos1, $pos2, $pos3, 35);
        affgear3($pos1, $pos2, $pos3, 36);
        affgear3($pos1, $pos2, $pos3, 37);
        affgear3($pos1, $pos2, $pos3, 38);
        affgear3($pos1, $pos2, $pos3, 39);
        affgear3($pos1, $pos2, $pos3, 40);
        affgear3($pos1, $pos2, $pos3, 41);
        affgear3($pos1, $pos2, $pos3, 42);
        affgear3($pos1, $pos2, $pos3, 43);
        affgear3($pos1, $pos2, $pos3, 44);
        affgear3($pos1, $pos2, $pos3, 45);
        affgear3($pos1, $pos2, $pos3, 46);
        affgear3($pos1, $pos2, $pos3, 47);
        affgear3($pos1, $pos2, $pos3, 48);
        affgear3($pos1, $pos2, $pos3, 49);
        affgear3($pos1, $pos2, $pos3, 50);
        affgear3($pos1, $pos2, $pos3, 51);
        affgear3($pos1, $pos2, $pos3, 52);
        affgear3($pos1, $pos2, $pos3, 53);
        affgear3($pos1, $pos2, $pos3, 54);
        affgear3($pos1, $pos2, $pos3, 55);
        affgear3($pos1, $pos2, $pos3, 56);
        affgear3($pos1, $pos2, $pos3, 57);
        affgear3($pos1, $pos2, $pos3, 58);
        affgear3($pos1, $pos2, $pos3, 59);
        affgear3($pos1, $pos2, $pos3, 60);
        affgear3($pos1, $pos2, $pos3, 61);
        affgear3($pos1, $pos2, $pos3, 62);
        affgear3($pos1, $pos2, $pos3, 63);
        affgear3($pos1, $pos2, $pos3, 64);
        affgear3($pos1, $pos2, $pos3, 65);
        affgear3($pos1, $pos2, $pos3, 66);
        affgear3($pos1, $pos2, $pos3, 67);
        affgear3($pos1, $pos2, $pos3, 68);
        affgear3($pos1, $pos2, $pos3, 69);
        affgear3($pos1, $pos2, $pos3, 70);
        affgear3($pos1, $pos2, $pos3, 71);
        affgear3($pos1, $pos2, $pos3, 72);
        affgear3($pos1, $pos2, $pos3, 73);
        affgear3($pos1, $pos2, $pos3, 74);
        affgear3($pos1, $pos2, $pos3, 75);
        affgear3($pos1, $pos2, $pos3, 76);
        affgear3($pos1, $pos2, $pos3, 77);
        affgear3($pos1, $pos2, $pos3, 78);
        affgear3($pos1, $pos2, $pos3, 79);
        affgear3($pos1, $pos2, $pos3, 80);
        affgear3($pos1, $pos2, $pos3, 81);
        affgear3($pos1, $pos2, $pos3, 82);
        affgear3($pos1, $pos2, $pos3, 83);
        affgear3($pos1, $pos2, $pos3, 84);
        affgear3($pos1, $pos2, $pos3, 85);
        affgear3($pos1, $pos2, $pos3, 86);
        affgear3($pos1, $pos2, $pos3, 87);
        affgear3($pos1, $pos2, $pos3, 88);
        affgear3($pos1, $pos2, $pos3, 89);
        affgear3($pos1, $pos2, $pos3, 90);
    }

    function affgear2($pos1, $pos2) {
        echo affgear4($pos1, $pos2, 0);
        echo affgear4($pos1, $pos2, 1);
        echo affgear4($pos1, $pos2, 2);
        echo affgear4($pos1, $pos2, 3);
        echo affgear4($pos1, $pos2, 4);
        echo affgear4($pos1, $pos2, 5);
        echo affgear4($pos1, $pos2, 6);
        echo affgear4($pos1, $pos2, 7);
        echo affgear4($pos1, $pos2, 8);
        echo affgear4($pos1, $pos2, 9);
        echo affgear4($pos1, $pos2, 10);
        echo affgear4($pos1, $pos2, 11);
        echo affgear4($pos1, $pos2, 12);
        echo affgear4($pos1, $pos2, 13);
        echo affgear4($pos1, $pos2, 14);
        echo affgear4($pos1, $pos2, 15);
        echo affgear4($pos1, $pos2, 16);
        echo affgear4($pos1, $pos2, 17);
        echo affgear4($pos1, $pos2, 18);
        echo affgear4($pos1, $pos2, 19);
        echo affgear4($pos1, $pos2, 20);
        echo affgear4($pos1, $pos2, 21);
        echo affgear4($pos1, $pos2, 22);
        echo affgear4($pos1, $pos2, 23);
        echo affgear4($pos1, $pos2, 24);
        echo affgear4($pos1, $pos2, 25);
        echo affgear4($pos1, $pos2, 26);
        echo affgear4($pos1, $pos2, 28);
        echo affgear4($pos1, $pos2, 29);
        echo affgear4($pos1, $pos2, 30);
        echo affgear4($pos1, $pos2, 31);
        echo affgear4($pos1, $pos2, 32);
        echo affgear4($pos1, $pos2, 33);
        echo affgear4($pos1, $pos2, 34);
        echo affgear4($pos1, $pos2, 35);
        echo affgear4($pos1, $pos2, 36);
        echo affgear4($pos1, $pos2, 37);
        echo affgear4($pos1, $pos2, 38);
        echo affgear4($pos1, $pos2, 39);
        echo affgear4($pos1, $pos2, 40);
        echo affgear4($pos1, $pos2, 41);
        echo affgear4($pos1, $pos2, 42);
        echo affgear4($pos1, $pos2, 43);
        echo affgear4($pos1, $pos2, 44);
        echo affgear4($pos1, $pos2, 45);
        echo affgear4($pos1, $pos2, 46);
        echo affgear4($pos1, $pos2, 47);
        echo affgear4($pos1, $pos2, 48);
        echo affgear4($pos1, $pos2, 49);
        echo affgear4($pos1, $pos2, 50);
        echo affgear4($pos1, $pos2, 51);
        echo affgear4($pos1, $pos2, 52);
        echo affgear4($pos1, $pos2, 53);
        echo affgear4($pos1, $pos2, 54);
        echo affgear4($pos1, $pos2, 55);
        echo affgear4($pos1, $pos2, 56);
        echo affgear4($pos1, $pos2, 57);
        echo affgear4($pos1, $pos2, 58);
        echo affgear4($pos1, $pos2, 59);
        echo affgear4($pos1, $pos2, 60);
        echo affgear4($pos1, $pos2, 61);
        echo affgear4($pos1, $pos2, 62);
        echo affgear4($pos1, $pos2, 63);
        echo affgear4($pos1, $pos2, 64);
        echo affgear4($pos1, $pos2, 65);
        echo affgear4($pos1, $pos2, 66);
        echo affgear4($pos1, $pos2, 67);
        echo affgear4($pos1, $pos2, 68);
        echo affgear4($pos1, $pos2, 69);
        echo affgear4($pos1, $pos2, 70);
        echo affgear4($pos1, $pos2, 71);
        echo affgear4($pos1, $pos2, 72);
        echo affgear4($pos1, $pos2, 73);
        echo affgear4($pos1, $pos2, 74);
        echo affgear4($pos1, $pos2, 75);
        echo affgear4($pos1, $pos2, 76);
        echo affgear4($pos1, $pos2, 77);
        echo affgear4($pos1, $pos2, 78);
        echo affgear4($pos1, $pos2, 79);
        echo affgear4($pos1, $pos2, 80);
        echo affgear4($pos1, $pos2, 81);
        echo affgear4($pos1, $pos2, 82);
        echo affgear4($pos1, $pos2, 83);
        echo affgear4($pos1, $pos2, 84);
        echo affgear4($pos1, $pos2, 85);
        echo affgear4($pos1, $pos2, 86);
        echo affgear4($pos1, $pos2, 87);
        echo affgear4($pos1, $pos2, 88);
        echo affgear4($pos1, $pos2, 89);
        echo affgear4($pos1, $pos2, 90);
    }

    function affgear1($pos1) {
        echo affgear2($pos1, 0);
        echo affgear2($pos1, 1);
        echo affgear2($pos1, 2);
        echo affgear2($pos1, 3);
        echo affgear2($pos1, 4);
        echo affgear2($pos1, 5);
        echo affgear2($pos1, 6);
        echo affgear2($pos1, 7);
        echo affgear2($pos1, 8);
        echo affgear2($pos1, 9);
        echo affgear2($pos1, 10);
        echo affgear2($pos1, 11);
        echo affgear2($pos1, 12);
        echo affgear2($pos1, 13);
        echo affgear2($pos1, 14);
        echo affgear2($pos1, 15);
        echo affgear2($pos1, 16);
        echo affgear2($pos1, 17);
        echo affgear2($pos1, 18);
        echo affgear2($pos1, 19);
        echo affgear2($pos1, 20);
        echo affgear2($pos1, 21);
        echo affgear2($pos1, 22);
        echo affgear2($pos1, 23);
        echo affgear2($pos1, 24);
        echo affgear2($pos1, 25);
        echo affgear2($pos1, 26);
        echo affgear2($pos1, 27);
        echo affgear2($pos1, 28);
        echo affgear2($pos1, 29);
        echo affgear2($pos1, 30);
        echo affgear2($pos1, 31);
        echo affgear2($pos1, 32);
        echo affgear2($pos1, 33);
        echo affgear2($pos1, 34);
        echo affgear2($pos1, 35);
        echo affgear2($pos1, 36);
        echo affgear2($pos1, 37);
        echo affgear2($pos1, 38);
        echo affgear2($pos1, 39);
        echo affgear2($pos1, 40);
        echo affgear2($pos1, 41);
        echo affgear2($pos1, 42);
        echo affgear2($pos1, 43);
        echo affgear2($pos1, 44);
        echo affgear2($pos1, 45);
        echo affgear2($pos1, 46);
        echo affgear2($pos1, 47);
        echo affgear2($pos1, 48);
        echo affgear2($pos1, 49);
        echo affgear2($pos1, 50);
        echo affgear2($pos1, 51);
        echo affgear2($pos1, 52);
        echo affgear2($pos1, 53);
        echo affgear2($pos1, 54);
        echo affgear2($pos1, 55);
        echo affgear2($pos1, 56);
        echo affgear2($pos1, 57);
        echo affgear2($pos1, 58);
        echo affgear2($pos1, 59);
        echo affgear2($pos1, 60);
        echo affgear2($pos1, 61);
        echo affgear2($pos1, 62);
        echo affgear2($pos1, 63);
        echo affgear2($pos1, 64);
        echo affgear2($pos1, 65);
        echo affgear2($pos1, 66);
        echo affgear2($pos1, 67);
        echo affgear2($pos1, 68);
        echo affgear2($pos1, 69);
        echo affgear2($pos1, 70);
        echo affgear2($pos1, 71);
        echo affgear2($pos1, 72);
        echo affgear2($pos1, 73);
        echo affgear2($pos1, 74);
        echo affgear2($pos1, 75);
        echo affgear2($pos1, 76);
        echo affgear2($pos1, 77);
        echo affgear2($pos1, 78);
        echo affgear2($pos1, 79);
        echo affgear2($pos1, 80);
        echo affgear2($pos1, 81);
        echo affgear2($pos1, 82);
        echo affgear2($pos1, 83);
        echo affgear2($pos1, 84);
        echo affgear2($pos1, 85);
        echo affgear2($pos1, 86);
        echo affgear2($pos1, 87);
        echo affgear2($pos1, 88);
        echo affgear2($pos1, 89);
        echo affgear2($pos1, 90);
    }

    echo affgear1(0);
    echo affgear1(1);
    echo affgear1(2);
    echo affgear1(3);
    echo affgear1(4);
    echo affgear1(5);
    echo affgear1(6);
    echo affgear1(7);
    echo affgear1(8);
    echo affgear1(9);
    echo affgear1(10);
    echo affgear1(11);
    echo affgear1(12);
    echo affgear1(13);
    echo affgear1(14);
    echo affgear1(15);
    echo affgear1(16);
    echo affgear1(17);
    echo affgear1(18);
    echo affgear1(19);
    echo affgear1(20);
    echo affgear1(21);
    echo affgear1(22);
    echo affgear1(23);
    echo affgear1(24);
    echo affgear1(25);
    echo affgear1(26);
    echo affgear1(27);
    echo affgear1(28);
    echo affgear1(29);
    echo affgear1(30);
    echo affgear1(31);
    echo affgear1(32);
    echo affgear1(33);
    echo affgear1(34);
    echo affgear1(35);
    echo affgear1(36);
    echo affgear1(37);
    echo affgear1(38);
    echo affgear1(39);
    echo affgear1(40);
    echo affgear1(41);
    echo affgear1(42);
    echo affgear1(43);
    echo affgear1(44);
    echo affgear1(45);
    echo affgear1(46);
    echo affgear1(47);
    echo affgear1(48);
    echo affgear1(49);
    echo affgear1(50);
    echo affgear1(51);
    echo affgear1(52);
    echo affgear1(53);
    echo affgear1(54);
    echo affgear1(55);
    echo affgear1(56);
    echo affgear1(57);
    echo affgear1(58);
    echo affgear1(59);
    echo affgear1(60);
    echo affgear1(61);
    echo affgear1(62);
    echo affgear1(63);
    echo affgear1(64);
    echo affgear1(65);
    echo affgear1(66);
    echo affgear1(67);
    echo affgear1(68);
    echo affgear1(69);
    echo affgear1(70);
    echo affgear1(71);
    echo affgear1(72);
    echo affgear1(73);
    echo affgear1(74);
    echo affgear1(75);
    echo affgear1(76);
    echo affgear1(77);
    echo affgear1(78);
    echo affgear1(79);
    echo affgear1(80);
    echo affgear1(81);
    echo affgear1(82);
    echo affgear1(83);
    echo affgear1(84);
    echo affgear1(85);
    echo affgear1(86);
    echo affgear1(87);
    echo affgear1(88);
    echo affgear1(89);
    echo affgear1(90);

    $valPlusProche = getClosest($recherche, $array);
    global $gear1, $gear2, $gear3, $gear4;
    global $calc;
    print_r($array); 
    echo $recherche. "\n". "\n";
    echo $valPlusProche. "\n". "\n";
    echo $calc;

?>


Merci d'avance.
A voir également:

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
28 mars 2020 à 00:17
Je remarque que tu as 2 fois la valeur 20 dans tes tableaux.
Ensuite, tu as environ 95 valeurs sur 4 tableaux, cela représente 95^4 possibilités à calculer, soit 81'450'625 possibilités ...

Il faut que tu limites le plus possible les calculs.

Il semble que tes 4 tableaux sont le mêmes, donc en avoir un seul sera plus simple à gérer.
Tu peux calculer le résultat de tes divisions :($pos1/$pos2) et ($pos3/$pos4)

En plus, tu utilises "pos" comme nom, donc c'est la position des nombre, pas leur valeur que tu calcules ...

Ensuite, apprends à utiliser les boucles, copier 95 fois les mêmes lignes, ça rend ton code illisible.
0
Anonyme1234_7288 Messages postés 65 Date d'inscription samedi 14 mars 2020 Statut Membre Dernière intervention 8 avril 2021
28 mars 2020 à 00:24
Mais ce que j'aimerais, c'est que mon code prenne moins de temps à s'exécuter.
Pourrais-tu m'aider?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
28 mars 2020 à 08:30
Bonjour,

La "vitesse" de ton script dépend également de la version PHP utilisée ( php 7 est plus rapide que le php 5 )
Mais aussi le serveur ( en fonction du nombre de processeurs et de ram disponible )

Le php n'est pas fait pour effectuer d'aussi gros calculs en temps réel......
Si tu veux continuer à le faire de cette façon.. faudra sûrement déléguer la partie calculs/recherche à un autre langage comme le python ou le ruby je pense.

Mais.. si tu peux faire autrement....
Les valeurs contenues dans tes array peuvent elles changer ?
Car si tu as toujours les même valeurs... tu pourrais découper ton script en plusieurs étapes.
- Un premier script effectue les calculs et les stockent dans une base de données
(pos1,pos2,pos3,pos4,resultatcalcul)

Bien sûr... les données ne changeant pas dans tes array... ce script ne serait qu'à lancer une seule fois.


Puis, dans ta page où tu veux faire la recherche et l'affichage
- un script qui ira comparer les données dans la base pour t'afficher le résultat voulu en utilisant une requête du genre
select * from table 
where value >= ($myvalue * .8) and value <= ($myvalue * 1.2) 
order by abs(value - $myvalue) limit 1





0