Načrtovanje in razvoj spletnih aplikacij

Polja v PHP

Spremenljivke hranijo podatke, ki jih lahko kasneje obdelamo. Njihova slabost je, da lahko naenkrat shranijo samo eno vrednost. Ta problem rešijo polja (angl. Array), ki omogočajo shranjevanje poljubnega števila podatkov. Polje je spremenljivka, ki vsebuje več elementov, ki so indeksirani s številkami ali nizi. Omogoča shranjevanje in obdelavo podatkov, ki so shranjeni pod istim imenom.

Polja imajo več prednosti pred spremenljivkami. Vseeno je, ali shranijo dve ali dva tisoč vrednosti. Do podatkov dostopamo enostavno prek zanke in jih lahko urejamo po imenu ali številki. Vsaka vrednost v polju se nanaša na en element. Do elementa pa imamo lahko dostop prek indeksa. V osnovi je indeksiranje elementov številčno, kar pomeni, da je prvi element na vrednosti indeksa 0, drugi na 1 itd.

Polja so lahko:

Definiranje numeričnih polj

PHP vsebuje veliko različnih funkcij za delo s polji. Osnova je funkcija array(), s katero ustvarimo polje:

$sadezi = array("banana", "ananas", "limona");

Do podatkov dostopamo:

echo $sadezi[1]; //izpise ananas

PHP v tem primeru avtomatsko povečuje indeks za 1 in ga ni treba vedno znova nastavljati. Če želimo, lahko indeks določimo tudi sami:

$sadezi[0] = "banana";
$sadezi[100] = "jabolko";

Primer:

$imena1 = array('Lojze','Janez','Mojca');
//je enako kot
$imena2[0] = 'Lojze';
$imena2[1] = 'Janez';
$imena2[2] = 'Mojca';
<?php
   $skupina = array('Lojze','Janez','Mojca');
	
   echo 'Člani skupine so: ' . $skupina[0] . ', '. "{$skupina[1]} in {$skupina[2]} .";
?>
Člani skupine so: Lojze, Janez in Mojca .

Asociativna polja

V prejšnjem primeru smo definirali indeksirana polja številčno. Polja, v katerih številke zamenjamo z nizi, imenujemo asociativna polja.
$karakter = array (ime=>"Janez", poklic=>"elektro inženir", starost=>30);

Do podatkov dostopamo:

echo $karakter[starost]; //izpise 30

Primer:

//starost članov
$imena = array('Lojze'=>32, 'Janez'=>18, 'Mojca'=>22)
//isto kot
$imena['Lojze'] = 32;
$imena['Janez'] = 18;
$imena['Mojca'] = 22;
<?php
   $imena = array('Lojze'=>32, 'Janez'=>18, 'Mojca'=>22);
	
   echo 'Člani so stari: ';
   echo $imena['Lojze'] . ', ';
   echo $imena['Janez'] . ' in ';
   echo $imena['Mojca'] . ' let.';
?>
Člani so stari: 32, 18 in 22 let.

Večdimenzionalna polja

Za večdimenzionalno polje bi lahko rekli, da je polje polj in si ga lahko predstavljamo kot tabelo. Za dostop do večdimenzionalnega polja potrebujemo dva indeksa.
$polje[1][2];

Definiramo jih na naslednji način:

$x = array(
   array( 'a' => 'a1',
          'b' => 'b1',
          'c' => 'c1' ),
   array( 'a' => 'a2',
          'b' => 'b2',
          'c' => 'c2' ),
   array( 'a' => 'a3',
          'b' => 'b3',
          'c' => 'c3' )
);
echo $x[1][b]; //izpiše b2
<?php
   $osebe = array(
      'Peter'=>array('starost'=>32,'visina'=>172),
      'Janez'=>array('starost'=>18,'visina'=>183)
   );
   echo 'Janez je star: ' . $osebe['Janez']['starost'] . ' let.';
?>
Janez je star: 18 let.