random værdi hvergang i en while

Tags:    php

jeg har en while jeg gerne vil have en forskellig værdi i hver gang de looper..

fx

while (blah){

$bgcolor1 = array ( "2344", "23434", "424");
$bgcolor = rand(0, (count($bgcolor1)-1));
echo $bgcolor;
}

dette vil give en tilfældig værdi til $bgcolor men denne værdi er den samme i alle loopne..

denne kode vil give

23424
23424
23424

og næste gang du refresher

f.eks

2344
2344
2344


det jeg gerne vil have et at den gør sådanne her

424
2344
424
23424

altså giver en random værdi ud i hvert loop


ved ikke om jeg har forklaret det læseligt ? :)



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Denne kode:

$i = 0;
while ($i < 5){

$bgcolor1 = array ( "2344", "23434", "424");
$bgcolor = rand(0, (count($bgcolor1)-1));
echo $bgcolor1[$bgcolor] . "\\r\\n<br>";
$i++;
}

giver fölgende resultat:

2344
23434
2344
424
23434

Altså virker den demo kode du smed ind.
Eftersom den ikke var 100% functionel går jeg ud fra at du har udeladt et par ting, deriblandt
den fejl som gör at det ikke virker.
vil du have seriöst feedback så skal du udlevere koden .. i det mindste hele while blokken så
man har en mulighed for at se hvad du gör galt.

En anden ting, at bruge rand garanterer ikke at du får en perfekt spredning på dine værdier ...
så hvis du fx ikke vil godtage at samme værdi kommer lige efter sig selv, så skal du smide en lille extra smule logik på selv.
Evt lave en function til dette, så kommer det ikke til at se så svinsk ud i din kode.



Denne kode:

$i = 0;
while ($i < 5){

$bgcolor1 = array ( "2344", "23434", "424");
$bgcolor = rand(0, (count($bgcolor1)-1));
echo $bgcolor1[$bgcolor] . "\\r\\n";
$i++;
}

giver fölgende resultat:

2344
23434
2344
424
23434

Altså virker den demo kode du smed ind.
Eftersom den ikke var 100% functionel går jeg ud fra at du har udeladt et par ting, deriblandt
den fejl som gör at det ikke virker.
vil du have seriöst feedback så skal du udlevere koden .. i det mindste hele while blokken så
man har en mulighed for at se hvad du gör galt.

En anden ting, at bruge rand garanterer ikke at du får en perfekt spredning på dine værdier ...
så hvis du fx ikke vil godtage at samme værdi kommer lige efter sig selv, så skal du smide en lille extra smule logik på selv.
Evt lave en function til dette, så kommer det ikke til at se så svinsk ud i din kode.



har løst det fejlen kom fordi jeg havde lavet en for senere hvor jeg skule bruge koden....

du har ret i at den ikke den rand ikke kommet ud i en perfekt spredning.. men jjeg har addet så mange variabler til den array at det ikke er noget problem






t