Gå til innhold

Kontrollstrukturen FOREACH .


Anbefalte innlegg

Heisann!

Jeg holder for tiden på med boken "Webprogrammering i PHP", men jeg syns boken forklarer FOREACH-løkken svært dårlig. Jeg vil derfor spørre dere om dere kan forklare meg litt nærmere om hvordan foreach jobber seg gjennom løkken:

 

Syntaks:

foreach ($matrise as $nokkelnavn => $verdi {
echo "$nokkelnavn er navnet på nøkkelen <br>";
echo "og $verdi er innholdet i dette elementet<p>":
} 

 

Det jeg egentlig ikke forstår er hvordan variablene $nokkelnavn og $verdi oppstår og får innhold (samt hva slags innhold disse får)? Jeg lurer også på hva "as" og "=>" har slags funksjon i løkken.

 

En liten gjennomgang på hvordan løkken jobber seg igjennom "step-by-step" hadde vært supert :)

 

Takk for all hjelp!

Lenke til kommentar
Videoannonse
Annonse

Skal prøve å forklare!

 

Her har vi matrisen/array'et vårt:

$array = array(1 => "en",
2 => "to",
3 => "tre",
4 => "fire",
5 => "fem");

 

Nå vil vi printe ut informasjonen sånn:

1 i bokstaver er "en"

2 i bokstaver er "to"

osv..

 

Da kan vi bruke foreach:

foreach ($array as $tall => $bokstav) {
echo $tall . ' i bokstaver er "' . $bokstav . "\"\r\n";
// Denne koden kjøres fem ganger. Første gangen er $tall 1 og $bokstav en
// Andre gangen er $tall 2 og $bokstav to
// osv..

// Hadde også hatt 6 => "seks", ville koden kjørt seks ganger
}

 

Lykke til :)

Lenke til kommentar

foreach er en spesialkonstruksjon, og ikke en vanlig type kontrolløkke som for, while osv. Men den er en praktisk sak, og gøyal å bruke.

 

foreach kan kun brukes på php sin array, og objekter som har implementert funksjoner for iterering. Vil du lage din egen linka liste el.lign så kan du gjøre som i linken under .... kanskje du da skjønner litt mer av hva som foregår i en foreach.

 

http://no.php.net/manual/en/language.oop5.iterations.php

 

De aller fleste ganger jeg bruker en for løkke er jo for å trå gjennom en array fra punkt null til punkt slutt, en gang. og nettopp dette gjør en foreach. Men siden php array ikke er en array , men det vi kaller map, så kan det ofte være litt vanskelig å gjøre en for( i=0; i<slutt; i++), siden en posisjon ikke trenger å begynne fra 0. Husk å lese nøye om dette på arrayer.

 

en litt stupid, men mer korrekt måte å trå gjennom en array manuelt:

reset( minarray );

do{

innhold = current( myarray );

nokkel = key( myarray );

while( next( myarray ));

 

http://no.php.net/manual/en/language.types.array.php

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...