Práca s poľami

Medzi najzákladnejšie funkcie pre prácu s poľom patrí funkcia count().

Funkcia count($pole) spočíta počet prvkov poľa $pole.

Príklad:

<?php
 $den = Array("1" => "Pondelok",
              "2" => "Utorok",
              "3" => "Streda",
              "4" => "Štvrtok",
              "5" => "Piatok",
              "6" => "Sobota",
              "0" => "Nedeľa");
 for($i=0; $i<count($den);
  $i++) echo $den[$i]."<br />";
 echo count($den);
?>

Výsledok príkladu:

Nedeľa
Pondelok
Utorok
Streda
Štvrtok
Piatok
Sobota
7

Funkcia each($pole) vracia aktuálny kľúč a pár hodnôt z poľa $pole a posúva kurzor poľa. Tento pár sa vracia v štvor-prvkovom poli s kľúčami 01key a value. Prvky 0 a key obsahujú kľúčový názov prvku poľa a 1 a value obsahujú dáta.

Ak vnútorný ukazovateľ pre pole ukazuje na koniec obsahu poľa, each() vracia FALSE.

Príklad:

$foo = array ("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each ($foo);

$bar teraz obsahuje následujúce páry kľúčov/hodnôt:

0 => 01 => ‚bob’key => 0value => ‚bob‘

Príklad:

$foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);

$bar teraz obsahuje následujúce páry kľúčov/hodnôt:

0 => ‚Robert’1 => ‚Bob’key => ‚Robert’value => ‚Bob‘

each() sa väčšinou používa spolu s list().

Príklad:

<?php
while (list($key,$value) = each($den))
  echo $value.",";
?>

Výsledok príkladu:

Pondelok,Utorok,Streda,Štvrtok,Piatok,Sobota,Nedeľa,

Po vykonaní funkcie each() bude kurzor poľa ponechaný na ďalšom prvku poľa alebo na poslednom prvku, ak je na konci poľa.

Funkcia list() (podobne ako array()) nie je v podstate funkcia, ale jazyková konštrukcia. list() sa používa na priradenie zoznamu premenných v jednej operácii.

Poznámka: list() funguje iba s číselnými poľami a preberá číselné indexy od 0.

Príklad:

<?php
$info = array('Kava', 'hneda', 'kofein');
 // Výpis všetkých premenných
 list($drink, $farba, $sila) = $info;
 print "$drink je $farba a $sila ju robí špeciálnou.<br />";
 // Výpis niektorých z nich
 list($drink, , $sila) = $info;
 print "$drink ma $sila.<br />";
 // Alebo ponecháme iba tretiu
 list( , , $sila) = $info;
 print "Potrebujem $sila!";
?>

 Výsledok príkladu:

Kava je hneda a kofein ju robí špeciálnou.
Kava ma kofein.
Potrebujem kofein!

Pre každé pole existuje v PHP ukazateľ (kurzor), ktorý ukazuje na niektorý prvok poľa. Funkcia reset() prenesie tento ukazateľ na prvý prvok poľa.

Príklad:

<?php
 echo "<br />Ďalší výpis:<br />";
 while (list($key,$value) = each($den))
  echo $value.",";
 echo "<br />Výpis po resetovaní kurzora:<br />";
 reset($den);
 while (list($key,$value) = each($den))
  echo $value.",";
?>

Výsledok príkladu:

Ďalší výpis:
Výpis po resetovaní kurzora:
Pondelok,Utorok,Streda,Štvrtok,Piatok,Sobota,Nedeľa,

Funkcia current($pole) vracia hodnotu prvku poľa $pole, na ktorý ukazuje ukazateľ.

Podobne funguje aj funkcia next(), ktorá najskôr presunie ukazateľna ďalší prvok poľa a až potom vráti hodnotu prvku poľa. Funkcia prev() sa správa práve tak ako next(), až no to, že vnútorný ukazovateľ poľa sa posúva späť a nie dopredu.

Funkcia key() vracia index prvku poľa, na ktorý ukazuje ukazateľ.

Funkcia end() posúva vnútorný ukazovateľ poľa na posledný prvok a vracia tento prvok.

Príklad:

<?php
 reset($den);
 while(current($den))
 {
 echo "Index: ".key($den);
 echo "Hodnota: ".current($den);
 next($den);
 }
?>

 Výsledok príkladu:

Index: 1
Hodnota: Pondelok
Index: 2
Hodnota: Utorok
Index: 3
Hodnota: Streda
Index: 4
Hodnota: Štvrtok
Index: 5
Hodnota: Piatok
Index: 6
Hodnota: Sobota
Index: 0
Hodnota: Nedeľa

 

Ďalšie príklady asociatívnych polí

Príklad: asociatívne pole č.1

$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]."<br />";
echo $arr[12];

 Výsledok príkladu:

bar
1

Príklad: asociatívne pole č.2

$arr1 = array(5 => 43, 32, 56, "b" => 12);
$arr2 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
echo $arr1[5]."<br />";
echo $arr1[6]."<br />";
echo $arr1[7]."<br />";
echo $arr1[b]."<br />";
echo " <br />";
echo $arr2[5]."<br />";
echo $arr2[6]."<br />";
echo $arr2[7]."<br />";
echo $arr2[b];

Výsledok príkladu:

43
32
56
12

43
32
56
12

PHP umožňuje tiež prácu s viacrozmernými poľami:

$a[1] = 1;                // jednorozmerné pole
$a[1][1] = 1;             // dvojrozmerné pole,
matica$a[1]["a"][2] = 1;  // trojrozmerné pole

Príklad: jednoduché viacrozmerné pole

$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["somearray"][6]."<br />";
echo $arr["somearray"][13]."<br />";
echo $arr["somearray"]["a"];

Výsledok príkladu:

5
9
42

Príklad: jednoduché viacrozmerné pole

$fruits = array("fruits" => array("a" => "orange",
                                  "b" => "banana",
                                  "c" => "apple"),
               "numbers" => array(1,
                                  2,
                                  3,
                                  4,
                                  5,
                                  6),
               "holes"   => array("first",
                                  5 => "second",
                                   "third")
               );
echo $fruits["holes"][5]."<br />";
echo $fruits["fruits"]["a"]."<br />";
echo $fruits["holes"][0]." (pred zrušením)<br />";
// zrušenie premennej
unset($fruits["holes"][0]);
echo $fruits["holes"][0]."(po zrušení)";

Výsledok príkladu:

second
orange
first (pred zrušením)
(po zrušení)