Her får du hjelp til å lage hjemmeside med video. Alle verktøy og programmer vi bruker til å lage webside er gratis.
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
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.
