20. december 2004 - 00:09Der er
37 kommentarer og 1 løsning
Husk de sidste 10 variabler
Hejsa. Jeg vil bare høre om der er nogen der kan være behjælpelige med at få dette script til at fungere således at: Den husker de sidste 10 valgte billeder (som den finder random), og hvis det valgte random billede så er et af de sidste 10 valgte billeder, så finder den et nyt random billede.
Altså man vil ikke se det samme billede før 10 billeder senere.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Ikke testet, men er det noget som dette du mener: function getImgArr($dir){ $dir = opendir($dir); $i=0; while($file = readdir($dir)){ if (substr($file,0,1)!=".") { $arr[$i] = $file; $i++; } } return $arr; }
function getRndImg($arr, $count = 10){ if (count($_SESSION['randimd'])>$count) { array_shift($_SESSION['randimd']); } $num = count($arr)-1; do { $rnd = rand(0,$num); } while (in_array($rnd, $_SESSION['randimd'])); $_SESSION['randimd'][] = $rnd; $str = $arr[$rnd]; return $str; }
iss -> Dit virker heller ikke... Den kommer med billederne ligesom før... Så din funktion hvor at den ikke kan tage det samme billede før 10 billeder efter det sidst blev taget funker ikke... Billederækkefølgen ser fx. sådan her ud med dit script:
coderdk -> Hmm my bad... Det virker fint... Men jeg tror du har misforstået mit spm.
Den skal ikke spytte 10 billeder ud... Men kun 1! Det som den skal gøre er bare at huske de forrige 10 billeder den har spyttet ud, så når den spytter et billede ud er det ikke det samme som et af de sidste 10 billeder...
Er der f.eks. 3 billeder: 1, 2, 3 dem trækker du ud, som f.eks. 3, 1, 2 så vil man hvis man henter den siden 9 gange kommer til at være: 3, 1, 2, 3, 1, 2, 3, 1, 2 ikke?
My bad igen... iss dit fungerer selvfølgelig perfekt. Det var bare mig der testede det som en dum dør. Jeg har min session start i et andet dokument end jeg testede i.. Tak for hjælpen.
Kun den sidste... det er det der er det smarte, vil du skrive 10 behøver du slet ikke at skrive noget, så er getRndImg(getImgArr("../images/layout_top/")); nok.
Helst ikke.... da den bliver sløvere og sløvere forstil dig hvis du har 100 billeder og du sætter den til 99, som kan do while lykken komme til at køre MANGE gange før end den finder det sidste tal....
Så sæt den til noget der ligner 80% dvs har du 10 så sæt den til 8. For jeg har ikke lavet nogen test på om det kan lade sig gøre, tror du får problemer hvis du har 5 billeder og skriver 8 f.eks....
Okay, har fundet ud af at man skal skrive et tal under det antal man har i mappen (det er jo klart da den kigger tilbage på de sidste x den har haft)...
Lige en ulempe ved dit script... Den laver en random rækkefølge første gang man kommer ind på sitet, men når den har kørt den igennem, starter den bare forfra på rækkefølgen.. Det er ikke så smart...
Altså 1. gang på sitet 03 05 04 --- 03 05 04
2. gang på sitet 08 06 01 --- 08 06 01
Den skulle jo gerne randomize igen efter det sidste billede er brugt op.. Hvis du forstår ?
Det er fordi du har sat tallet for højt, lad as sige du har fire: 1, 2, 3, 4, 5
Du sætter den til 4, den trækker: 2, 4, 1, 3, 5 nu kommer problemet, hvad skal den vælge? der er jo kun 2 at vælge, for det er det eneste der ikke er brugr i de sidste fire.
Hmmm, ville bare umidelbart tro at det ville kunne løses med en if().... Da man vel ville kunne se i array og så se når den var færdig... bla bla bla... Hvor skal den if(empty)... Ind henne??? Og hvad gør den goedt for?
Velbekommen, hvis du ikke har regnet det ud, så kan du ikke sætte den til mere end 80% af hvad der er, så sættes den til 80%, dvs er der 10 og du sætter den til mere end 8 så bliver det det 8.....
if ($count > (count($arr)*.8)) $count = count($arr)-2; Skal være if ($count > (count($arr)*.8)) $count = floor(count($arr)*.8);
som skal vælges tilfældigt, dog må det foregående tekststykke ikke blive valgt igen. Tænkte på om du kunne hjælpe mig lidt på vej??
Synes godt om
Ny brugerNybegynder
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.