# Kom igång med Php (4/7)
Author: [Borttaget]

for-loopen
----------

Det första exemplet på upprepning, vi ska lära oss, är for-loopen. Med denna loop kan vi repetera något det antal gånger vi vill. Så här ser for-loopen ut:

for ($i = 0; $i < 7; $i++)  
{  
    echo "Hej";  
}   

Koden ovan kommer att generera följande:

_HejHejHejHejHejHejHej_

Om vi går igenom loopen, del för del, kan vi förstå varför mycket enkelt. Första delen, _$i = 0,_ sätter att variabeln $i ska vara lika med 0 när loopen startar. Nästa del, _$i < 7_, betyder att loopen ska fortsätta att upprepa så länge detta påstående är sant. Alltså så länge $i är mindre än 7 kommer vi att skriva _Hej_. Sista delen, _$i++,_ är ett förkortat skrivsätt av, _$i = $i + 1;_. Med andra ord så ökar vi variabeln $i med 1 varje gång loopen körs.

Vi kan visa detta genom att skriva ut variabeln _$i_ brevid varje _Hej._

for ($i = 0; $i < 7; $i++)  
{  
    echo "(i=$i)Hej ";  
} 

Detta ger följande:

_(i=0)Hej (i=1)Hej (i=2)Hej (i=3)Hej (i=4)Hej (i=5)Hej (i=6)Hej_

Programmet _tänker_ på följande sätt:

Är 0 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 1 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 2 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 3 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 4 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 5 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 6 < 7? - Ja, vi skriver "Hej" och plussar på 1 på $i

Är 7 < 7? - Nej! Vi skriver inte ut något och avslutar

while-loopen
------------

Det finns en annan loop som heter _while_. While betyder "medan", och det beskriver denna loop väldigt bra. Denna loop repeterar _medan_ ett påstående är sant.

Vi kan använda while-loopen precis på samma sätt som en for-loop så här:

$i = 0;  
  
while ($i < 7)  
{  
    echo "Hej";  
    $i++;  
}

Denna kod ger exakt samma resultat som det första exemplet på for-loopen. Det vi först gör är att sätta en variabel, _$i_, att vara lika med 0 redan ovanför vår loop. Sedan säger vi åt loopen att, _medan $i < 7_, så skriver vi _Hej_ och plussar på _1_ på _$i_.

While-loopen är dock mycket mer dynamisk än for-loopen. Vi behöver inte räkna upp till ett specifikt värde med while. Det räcker med ett _påstående_ som blir falsk inom överskådlig framtid. Blir påståendet aldrig falskt kommer loopen att snurra i all evighet och vi får ett felmeddelande.

foreach-loopen
--------------

foreach-loopen hjälper oss att loopa igenom en [array](http://webbprogrammering.ifokus.se/articles/4dd4ebd188f4723865000ca0-kom-igang-med-php-2-#articles-1). Det går givetvis att loopa igenom en array med de vanliga for- eller while-looparna. Men har vi gjort en array, med namn istället för siffror, som _index_ blir det lite knepigare. _for each_, betyder _för varje_ och det är precis vad loopen gör, den loopar ett varv för varje värde i en array.

Exempel:

$myArray = array("Låda\_1" => "Innehåll 1",  
                  "Låda\_2" => "Innehåll 2",  
                  "Låda\_3" => "Innehåll 3",  
                  "Låda\_4" => "Innehåll 4");  
  
foreach ($myArray as $content)  
{  
    echo $content . "<br>";  
}  

Ovanstående ger följande:

_Innehåll 1_  
_Innehåll 2_  
_Innehåll 3_  
_Innehåll 4_

Det finns en till väldigt användbar funktion i foreach-loopen. Vi kan nämligen få veta vilken _låda_, vilket index, varje innehåll finns i.

Exempel:

$myArray = array("Låda\_1" => "Innehåll 1",  
                  "Låda\_2" => "Innehåll 2",  
                  "Låda\_3" => "Innehåll 3",  
                  "Låda\_4" => "Innehåll 4");  
  
foreach ($myArray as $box => $content)  
{  
    echo "$box innehåller: $content <br>";  
}  

Ovanstående ger följande:

_Låda\_1 innehåller: Innehåll 1_  
_Låda\_2 innehåller: Innehåll 2_  
_Låda\_3 innehåller: Innehåll 3_  
_Låda\_4 innehåller: Innehåll 4_

Prova själv
-----------

Vi har följande arrayer:

$car1 = array("max\_speed" => "340km/h",  
                "style" => "Snygg");  
  
$car2 = array("max\_speed" => "110km/h",  
                "style" => "Ful");  
  
$car3 = array("max\_speed" => "50km/h",  
                "style" => "Superdupersnygg");  
  
$cars = array("bil1" => $car1,  
              "bil2" => $car2,  
              "bil3" => $car3);  

Försök genom att loopa ut värderna ut variabeln $cars få följande resultat:

_bil1:_  
_speed: 340km/h_  
_style: Snygg_  
  
_bil2:_  
_speed: 110km/h_  
_style: Ful_  
  
_bil3:_  
_speed: 50km/h_  
_style: Superdupersnygg_

[Tips och diskussion den i här tråden](../../discussions/4dd50e5ad4ebea3ebd001023-kom-igang-med-php#4dd2dad588f4721678015b62-1)

[Nästa artikel i serien »](http://webbprogrammering.ifokus.se/articles/4dd522a488f472386500126b-kom-igang-med-php-57-#4dd2dd3cd4ebea6d7d014c80-1)
