PHP guide, alt om arrays, array keys og values

Arrays kan virke forvirrende på enhver, men frykt ikke. Det er egentlig såreenkelt. Les alt som står om temaet før videoen, se gjennom videoen og les og tolk eksemplene nedenfor, så vil du helt sikkert forstå det.

Hva er en array

En array er en slags samling av data. Data i en array kan være strings, integers, floats og booleans. Du tenker sikkert at dette høres ut som variabler og konstanter, og det er helt riktig.

Verdiene i en array oppfører seg mer som verdiene på variabler enn på konstanter. Verdien av en konstant er som du vet konstant, mens verdien av en variabel kan endres. Dette gjelder også for verdier i arrays.

Primært bruker man en array når man skal angi flere typer data på et objekt. Objektet kan feks være et menneske. Man kunne definert diverse egenskaper et menneske hadde ved hjelp av variabler, men det ville fort blitt mange variabler å forholde seg til. Derfor er det bedre å bruke en array.

Det er fordi man kan angi nøkler (keys) til en verdi i en array. Nøkkelen kan enten være en index (en integer), eller en assosiasjon (associative key). Assosiative nøkler er strings.

Se videoen, og les gjennom eksemplene under etterpå.

Hva er arrays, keys og hva er forskjellen på associative og index

Du har ikke installert Flash på datamaskinen din. Du trenger minimum flash 8 for å kunne se denne videoen.

Arrays og index keys

Si man skal angi egenskaper hos et menneske. Da kan det være lurt å bruke en array. Her setter vi opp en array over egenskaper et menneske har. Denne bruker index keys.

<?php
$human
= array (
   
'male',
   
'blue',
   
83.5,
);
?>

Bruker man print_r($human);, vil output se slik ut

Array
(
    [0] => male
    [1] => blue
    [2] => 83.5
)

Merk at indexen begynner på 0. Disse opplysningene gir lite mening for deg som leser dem. Informasjonen kan være hva som helst. Vil vi gjøre koden mer leselig, så introduserer vi associative arrays.

Arrays og associative keys

Vi ønsker at koden skal bli mer leselig for mennesker, derfor angir vi assosiative nøkler fremfor indexer, slik:

<?php
$human
= array (
   
'sex'       => 'male',
   
'eye_color' => 'blue',
   
'weight'    => 83.5,
);
?>

Dette gir følgende output

Array
(
    [sex] => male
    [eye_color] => blue
    [weight] => 83.5
)

Hvilket straks gir mye mer mening!

Sett arrays på forskjellige måter

Ovenfor har vi sett hvordan man setter arrays ved å bruke syntaxen

<?php
$array_navn
= array('nøkkel' => 'verdi', 'nøkkel_2' => 'verdi');
?>

men man kan også angi arrays på andre måter. Hvis du skal sette en array, og allerede har deg bestemt deg for hvilken index key eller associative key du skal bruke kan du gjøre det slik:

<?php
// Index key
$human[3] = 'blonde';

// Associative key
$human['hair_color'] = 'blonde';
?>

Hent ut verdier fra arrays

Når man skal bruke arrays, feks til å printe ut verdien av dem til skjerm, nytter man nøkkelen. Igjen bruker man fnutter eller anførselstegn for å angi assosiative nøkler, mens man utelater disse dersom man bruker en index.

<?php
// Print associative array
print $human['hair_color'];
print
$human["hair_color"];

// Print array value based on index keys
print $human[3];
?>

Sett index key til den neste i rekken

Hvis du har en array hvor nøklene er indexer, så er det ofte slik at vi ønsker at neste verdi skal være én mer enn den siste som ble brukt. La oss si vi har denne arrayen igjen:

Array
(
    [0] => male
    [1] => blue
    [2] => 83.5
)

Nå ønsker vi at neste verdi skal ha index 3, men vi vet ikke alltid hvor mange verdier en array har. Da kan vi angi neste verdi slik:

<?php
$human
[] = 'blonde';
?>

Dette vil føre til at arrayen ser slik ut

Array
(
    [0] => male
    [1] => blue
    [2] => 83.5
    [3] => blonde
)

Multi dimensional arrays

Multidimensjonelle arrays er arrays som inneholder arrays, ofte i mange lag. For å sette en array i arrayen kan du feks gjøre det slik:

<?php
$array
['partner'] = array('partner' => true, 'sex' => 'woman');
?>

Skriver vi ut denne arrayen, vil den se slik ut

Array
(
    [partner] => Array
        (
            [partner] => 1
            [sex] => woman
        )

)

Slik kunne vi fortsatt og definere egenskaper, feks at hver unge dette mennesket hadde, i tillegg var en array under arrayen.