några sidor på nätet om PHP programmering

Sök efter  
Börja här Uppgifter Testa dig själv Tips Sidokarta mm. Länkar Sök

Endimensionella Flerdimensionella

1.6.1 Endimensionella

Det är oerhört enkelt att skapa en array och lägga in data i denna. Se nedanstående exempel:

Automatisk indexering

<?php
    
# anger man inte index, så börjar PHP från 0
    # och ökar med ett varje gång
    
$namn[] = "Kalle";
    
$namn[] = "Ville";
    
$namn[] = "Anna";
    
$namn[] = "Eva";


    
# visa tredje namnet
    
echo $namn[2] . "<br><br>";

    
# man kan nöja sig med att ge det första talet
    # anger man inte resten så räknas de upp automatiskt
    
$mera[100] = "Kalle";
    
$mera[] = "Ville";
    
$mera[] = "Anna";
    
$mera[] = "Eva";

    
# loopa genom hela arrayen
    
foreach( $mera as $index => $värde )
    {
        echo
"\$mera[$index] = $värde <br>";
    }

?>
Listning 1.6.1.1 - samples/s39.php

Anna

$mera[100] = Kalle
$mera[101] = Ville
$mera[102] = Anna
$mera[103] = Eva
Resultat av listning 1.6.1.1

Manuell indexering

Ovanstående gör samma sak som:

<?php
    
# man kan även ange index
    
$namn[ 0 ] = "Kalle";
    
$namn[ 1 ] = "Ville";
    
$namn[ 2 ] = "Anna";
    
$namn[ 3 ] = "Eva";

    
# visa tredje namnet
    
echo $namn[2];
?>
Listning 1.6.1.2 - samples/s40.php

Anna
Resultat av listning 1.6.1.2

Array som en dictionary

Man måste inte använda 0,1,2,3 som index. En array kan även indexeras med textsträngar. Man får då en dictionary (även kallad hash eller associative array) - en mycket användbar datastruktur. Använder man inte numerisk indexering så finns funktionen foreach till vår hjälp

<?php
    
# man kan även ange index
    
$person[ "förnamn" ] = "Kalle";
    
$person[ "efternamn" ] = "Kalle";
    
$person[ "adress" ] = "Bortavägen";
    
$person[ "telefon" ] = "1234 567";

    
# visa adressen
    
echo $person[ "adress" ] . "<br>";
    
    
# visa allt
    
foreach ( $person as $fält => $uppgift )
    {
        echo
"$fält är $uppgift<br>";
    }
?>
Listning 1.6.1.3 - samples/s41.php

Bortavägen
förnamn är Kalle
efternamn är Kalle
adress är Bortavägen
telefon är 1234 567
Resultat av listning 1.6.1.3

array funktionen

Man kan även använda funktionen array för att skapa en array:

<?php
    
# 1=> betyder att arrayen skall börja med 1
    # och sedan räkna uppåt
    
$månader = array(
            
1=>"Januari", "Februari", "Mars",
            
"April", "Maj", "Juni", "Juli",
            
"Augusti", "September", "Oktober",
            
"November", "December"
            
);

    
# visa en månad
    
echo "Den sjätte månaden är $månader[6] <br><br>";
    
    
# visa allt
    
foreach ( $månader as $nummer => $namn )
    {
        echo
"Månad nummer <i>$nummer</i> heter <i>$namn</i><br>";
    }
?>
Listning 1.6.1.4 - samples/s42.php

Den sjätte månaden är Juni

Månad nummer 1 heter Januari
Månad nummer 2 heter Februari
Månad nummer 3 heter Mars
Månad nummer 4 heter April
Månad nummer 5 heter Maj
Månad nummer 6 heter Juni
Månad nummer 7 heter Juli
Månad nummer 8 heter Augusti
Månad nummer 9 heter September
Månad nummer 10 heter Oktober
Månad nummer 11 heter November
Månad nummer 12 heter December
Resultat av listning 1.6.1.4

Multipla indextyper

Ingenting säger att en array bara kan indexeras med heltal eller bara med strängar. Man kan även kombinera dessa. Se nedanstående program:

<?php
    
# 1=> betyder att arrayen skall börja med 1
    # och sedan räkna uppåt. Den däknar tills den
    # stöter på något annat. I detta fall "Jan"=>
    
$månader = array(
            
1=>"Januari", "Februari", "Mars",
            
"April", "Maj", "Juni", "Juli",
            
"Augusti", "September", "Oktober",
            
"November", "December",

            
"Jan"=>"Januari", "Feb"=>"Februari", "Mar"=>"Mars",
            
"Apr"=>"April", "May"=>"Maj", "Jun"=>"Juni", "Jul"=>"Juli",
            
"Aug"=>"Augusti", "Sep"=>"September", "Oct"=>"Oktober",
            
"Nov"=>"November", "Dec"=>"December",

            );

    
# visa en månad
    
echo "Den sjätte månaden är $månader[6] <br><br>";
    
# visa en månad
    
echo "Sep heter egenligen ".  $månader["Sep"] ."<br><br>";
    
    
# visa allt
    
foreach ( $månader as $värde => $namn )
    {
        if (
is_integer( $värde ) )
        {
            echo
"Månad nummer <i>$värde</i> heter <i>$namn</i><br>";
        }
        else
        {
            echo
"<i>$värde</i> heter egentligen <i>$namn</i><br>";
        }
    }
?>
Listning 1.6.1.5 - samples/s43.php

Den sjätte månaden är Juni

Sep heter egenligen September

Månad nummer 1 heter Januari
Månad nummer 2 heter Februari
Månad nummer 3 heter Mars
Månad nummer 4 heter April
Månad nummer 5 heter Maj
Månad nummer 6 heter Juni
Månad nummer 7 heter Juli
Månad nummer 8 heter Augusti
Månad nummer 9 heter September
Månad nummer 10 heter Oktober
Månad nummer 11 heter November
Månad nummer 12 heter December
Jan heter egentligen Januari
Feb heter egentligen Februari
Mar heter egentligen Mars
Apr heter egentligen April
May heter egentligen Maj
Jun heter egentligen Juni
Jul heter egentligen Juli
Aug heter egentligen Augusti
Sep heter egentligen September
Oct heter egentligen Oktober
Nov heter egentligen November
Dec heter egentligen December
Resultat av listning 1.6.1.5

   Börja härArraysEndimensionella