Avatar billede QTmose Nybegynder
22. maj 2011 - 18:37 Der er 4 kommentarer og
1 løsning

Trække tal fra værdier i array og øge værdi

Hej, og beklager den kryptiske overskrift. Sagen er den, at jeg har et array der ser således ud:

Array
(
    [1] => 960
    [2] => 960
    [3] => 960
    [4] => 960
    [5] => 960
    [6] => 960
    [7] => 960
    [8] => 960
    [9] => 960
    [10] => 960
    [11] => 960
    [12] => 960
)

Det jeg vil er, at loppe igennem mit array og trække et tal fra alle værdierne, men tallet der trækkes fra med, skal øges med sig selv for hver gang. Hvis vi antager at talle f.eks. er 80, vil tallet der skal trækkes fra med blive 80, 160, 240 osv., og jeg vil ende med et array der ser således ud:

Array
(
    [1] => 960
    [2] => 880
    [3] => 800
    [4] => 720
    [5] => 640
    [6] => 560
    [7] => 480
    [8] => 400
    [9] => 320
    [10] => 240
    [11] => 160
    [12] => 80
)

Håber der er nogen der kan hjælpe, da jeg efterhånden har stirret mig ret blind på problemet, og jeg kan ikke lige umiddelbart finde en løsning på det. På forhånd tak for hjælpen.
Avatar billede olsensweb.dk Ekspert
22. maj 2011 - 19:02 #1
hvorfor starter dit array med 1 ??
normalt er det med 0.
her er en "normal" løsning
[div]<?php
$test = Array(960,960,960,960,960,960,960,960,960,960,960,960);

$tal = 80;
$lng = count($test);
for($i=0; $i<$lng; $i++){
    $test[$i] = $test[$i] - ($i* $tal);   
}

print_r($test);
?>[div]
Avatar billede olsensweb.dk Ekspert
22. maj 2011 - 19:04 #2
glemte lige en / i afsluttende div :)
<?php
$test = Array(960,960,960,960,960,960,960,960,960,960,960,960);

$tal = 80;
$lng = count($test);
for($i=0; $i<$lng; $i++){
    $test[$i] = $test[$i] - ($i* $tal); 
}

print_r($test);
?>
Avatar billede QTmose Nybegynder
22. maj 2011 - 19:13 #3
Mit array starter med 1, fordi jeg har sat det til at starte med 1. Arrayet er dynamisk og kommer af resultatet fra en algoritme andetsteds i mit script, hvor nøglerne fungerer som relationer.

Men tak for hjælpen, det burde løse mit problem. Kom lige med et svar, hvis du skal have dine point.
Avatar billede olsensweb.dk Ekspert
22. maj 2011 - 19:24 #4
så laver jeg da bare lidt om
<?php
$test = Array(0, 960,960,960,960,960,960,960,960,960,960,960,960);

$tal = 80;
$lng = count($test);
for($i=0; $i<$lng; $i++){
    if($i==0);
    else{
        $test[$i] = $test[$i] - ( ($i-1) * $tal);   
    }
}

print_r($test);
?>
Avatar billede QTmose Nybegynder
22. maj 2011 - 19:46 #5
Det var nu ikke nødvendigt. Jeg har selv tilpasset det. Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester