Mappa om spann

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
info@aimdesign.se



Medlem i: 3081 dagar
Från: Märsta
Status: Offline



#741481
Inlägg Skrivet: 2017-02-14 23:12      Ämne: Mappa om spann Citera

Jag sitter och försöker för mitt liv förstå hur jag kan mappa om ett spann till ett annat med hjälp av php.

Jag har ett spann som sträcker sig från 1 till 4000 och behöver göra om de värdena till ett spann mellan 1 och 200.

Jag har hittat några lösningar, både rent matematiska och programmeringsspecifika men inget av dem verkar fungera för mig. Vad gör jag för fel? Nedan kan ni se det senaste försöket som inte ändrar ingångsvärdena alls.

KOD:
1:
 
2:
function mapping($value) {
3:
                        $fromLow = 1;
4:
                        $fromHigh = 4000;
5:
                        $toLow = 1;
6:
                        $toHigh = 200;
7:
                        $oldRange = $fromHigh - $fromLow;
8:
                        $newRange = $toHigh - $toLow;
9:
                        $new_value = ((($value - $fromLow) * $newRange) / $oldRange) + $toLow;
10:
                        return  $new_value;
11:
                     }
12:
 
13:
 


Tack på förhand.
 

_________________
På svengelska -> It's not the fart that kills you, it's the smäll
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
harald_b
Moderator



Medlem i: 3903 dagar
Från: Tavesta
Status: Offline



#741482
Inlägg Skrivet: 2017-02-15 00:14      Ämne: Citera

Vad jag kan se så fungerar din kod.
Hur använder du funktionen?
PHP:
1:
 $ändrat_värde mapping($gammalt_värde); 


Om du vill att själva variabeln som du skickar som parameter skall ändras (vilket jag inte hade rekommenderat) så kan du ändra till:
PHP:
1:
 function mapping(&$value) { //Använd variabelreferens istället för värde, som parameter
2:
                        $fromLow 1;
3:
                        $fromHigh 4000;
4:
                        $toLow 1;
5:
                        $toHigh 200;
6:
                        $oldRange $fromHigh $fromLow;
7:
                        $newRange $toHigh $toLow;
8:
                        //Spara tillbaka det nya värdet i samma variabel
9:
                        $value = ((($value $fromLow) * $newRange) /  $oldRange) + $toLow
10:
                        //Ingen return behövs här
11:
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic