Knebba Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 Prøve å få mekket meg en quiz, for å lære arrays og det som følger med det... har satt sammen dette til nå: <?php $a = 0; $sporsmaal = array( "hvem er kul?", "hva skjer?"); foreach ($sporsmaal as $nokkel) { echo $sporsmaal[0]++; } ?> men dette gir bare output: hvem er kul?hvem er kul? hvordan får jeg den til å bytte spørsmål? Lenke til kommentar
trondes Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 Prøve å få mekket meg en quiz, for å lære arrays og det som følger med det...har satt sammen dette til nå: <?php $a = 0; $sporsmaal = array( "hvem er kul?", "hva skjer?"); foreach ($sporsmaal as $nokkel) { echo $sporsmaal[0]++; } ?> men dette gir bare output: hvem er kul?hvem er kul? hvordan får jeg den til å bytte spørsmål? Fint å lære seg noe nytt men du har en liten feil her Når du skriver $sporsmaal= array("Hvem er kul?", "hva skjer?"); Så vil $sporsmaal[0] bli "Hvem er kul?" og $sporsmaal[1] = "hva skjer?" Når du bruker foreach så virker den slik foreach( $sporsmaal as $nokkel) print $nokkel; første gangen den kjører blir $nokkel = $sporsmaal[0] og andre gangen blir den $sporsmaal[1]. men hvis du sier den skal printe ut $sporsmaal[0] så får du bare det enne spørsmålet.. du kan også prøve: foreach($sporsmaal as $key => $streng) print $key.":".$streng."<br>"; Da vil du få: 1: Hvem er kul? 2: Hva skjer? håper at dette kan hjelpe deg litt.. Sikkerte flere som kan forklare ting bedre her enn meg Lenke til kommentar
Knebba Skrevet 13. mars 2006 Forfatter Del Skrevet 13. mars 2006 takk skal du ha, fikk den til nå men så er det svarene og... hvordan kan jeg få knyttet de til spørsmålene? <?php $sporsmaal = array( "hvem er kul?", "hva skjer?"); /* Svar til $sporsmal[0]*/ $svar = array(); $svar[0] = "kongen"; $svar[1] = "jimi"; $svar[2] = "clint eastwood"; /* Svar til $sporsmal[0]*/ $svar2 = array(); $svar2[0] = "lite"; $svar2[1] = "mye"; $svar2[2] = "kanskje"; foreach ($sporsmaal as $nokkel) { echo $nokkel; echo "<br>"; } ?> hvordan gjøres det? så noe på multdimensjonelle arrays, vet ikke hvordan jeg skal få det til å funke sammen.. Lenke til kommentar
CruellaDeVille Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 <?php $a = 0; $sporsmaal = array( "hvem er kul?", "hva skjer?"); foreach ($sporsmaal as $nokkel) { echo $sporsmaal[0]++; } ?> hvem er kul?hvem er kul? 5746553[/snapback] Du kan foreksempel skrive: foreadch($spørsmål as $nøkkel) echo $nøkkel Da vil den skrive ut det samme. Det du sier er: Skriv ut arrayindex 0 hver gang løkken kjører (og så forsøker du å øke "noe", ikke helt sikker på hva det er) I arrayen din står det egentlig: | 0 | Hvem er kul? | 1 | Hva skjer? Du skriver at du vil lage en quiz. Da kan du lage en multidimensjonal assosiativ array slik: $quiz = array( array( 'Spørsmål'=>'Når var unionsoppløsningen i Norge', 'Svar'=>1905 ), array( 'Spørsmål'=>'Hva heter Norges statsminister', 'Svar'=>'Jens Stoltenberg' ) ); foreach($quiz as $spørsmål){ foreach($spørsmål as $key=> $value){ print $value."<br />"; } } Her har du en array, $quiz,, som består av to nye arrayer med index 0 og 1. Disse to indre arrayene er assosiative arrayer, med index-nøkler spørsmål og svar. For å loope de trenger du en dobbel foreach-løkke, som vist ovenfor. Alternativt kan du bruke en enkel foreachløkke og hente ut indre arrays verdier slik: foreach($quiz as $spørsmål){ print $spørsmål['Spørsmål']. "<br />"; print $spørsmål['Svar']. "<br />"; } Da kan du også sammenligne. La oss si at du skriver ut alle spørsmål, lager en radio button til å legge inn et svar, henter denne ut ved hjelp av $_POST['svar'] eller noe slikt... da kan du si at hvis $_POST['svar'] == $spørsmål['svar'] // send premie eller noe. Lenke til kommentar
Knebba Skrevet 13. mars 2006 Forfatter Del Skrevet 13. mars 2006 takk for grundig beskrivelse cruelladeville:) men trenger jo flere svaralternativer.. prøvde: <?php $quiz = array( array( 'Sporsmal'=>'Når var unionsoppløsningen i Norge', 'Svar'=>1905' 'Svar'=>2005' /*linje 68*/ 'Svar'=>1814' ), array( 'Sporsmal'=>'Hva heter Norges statsminister', 'Svar'=>'Jens Stoltenberg' 'Svar'=>'John Cleese', 'Svar'=>'Clint Eastwood' ) ); foreach($quiz as $sporsmal){ foreach($sporsmal as $key=> $value){ print $value."<br />"; } } ?> men får: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/home/web/wno90772/annet/quiz.php on line 68 Lenke til kommentar
CruellaDeVille Skrevet 13. mars 2006 Del Skrevet 13. mars 2006 takk for grundig beskrivelse cruelladeville:)men trenger jo flere svaralternativer.. prøvde: <?php $quiz = array( array( 'Sporsmal'=>'Når var unionsoppløsningen i Norge', 'Svar'=>1905' 'Svar'=>2005' /*linje 68*/ 'Svar'=>1814' ), array( 'Sporsmal'=>'Hva heter Norges statsminister', 'Svar'=>'Jens Stoltenberg' 'Svar'=>'John Cleese', 'Svar'=>'Clint Eastwood' ) ); foreach($quiz as $sporsmal){ foreach($sporsmal as $key=> $value){ print $value."<br />"; } } ?> men får: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/home/web/wno90772/annet/quiz.php on line 68 5746777[/snapback] Du mangler et , (komma) etter hver array-del, eks i array om statsministeren - prøvde:[code] <?php $quiz = array( array( 'Sporsmal'=>'Når var unionsoppløsningen i Norge', 'RiktigsvarSvar'=>1905 'GaltSvarA'=>2005, /*linje 68 Mangler komma og trenger ikke ' siden dette er tall*/ 'GaltSvarB'=>1814 ), Men - og dette er et stort men... Du kan ikke kalle flere assosiative indexer for det samme, dvs bare en kan hete 'svar' i hver subarray. Dermed må du kalle de noe annet, eks Riktigsvar, galtsvar1, galtsvar2. Eventuelt se på koden som jeg har laget her: http://nibbler.no/files/quiz.php Jeg har ikke gjort noe i forhold til logikk og sjekk av svar, men her er en multidimensjonal array (med tallindex på ytterste og indre array, og en assosiativ i midten) Se om du kan forstå prinsippet i arrayen min, og husk at arrays er nummerert fra 0 og oppover med mindre du forteller otherwise. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå