Masyvai yra skirti saugoti keletą reikšmių viename kintamajame. Jei žinote iš matematikos, kas yra matricos, tai čia labai panašus dalykas. Realiai - kintamųjų lentelė. Gali būti vienmačiai ir daugiamačiai masyvai.
Paprastas kintamasis savyje saugo vieną reikšmę, tuo tarpu masyvas yra toks kintamojo tipas, kurio viduje galime saugoti keletą reikšmių.
Kada masyvai yra patogiau už paprastus kintamuosius?
Jeigu turime daiktų sąrašą, jį saugoti keliuose kintamuosiuose gali būti gana nepatogu:
1 2 3 |
$pirma_masina = "BMW"; $antra_masina = "Audi"; |
Ir tarkime turime tokių mašinų ne 2, o kelis šimtus ar tūkstančius ir mums reikia jas visas surikiuoti pagal kokį nors kriterijų, arba vieną panaikinti ir perslinkti sąrašą taip, kad neliktų tuščių tarpų. Geriausia visokius tokius dalykus daryti su masyvais (angliškai: array).
Kiekvienas elementas, kuris yra masyve turi unikalų indeksą, per kurį lengvai galime pasiekti bet kurį masyvo elementą.
PHP kalboje turime trijų rūšių masyvus:
Numeruotame masyve kiekvienas elementas yra saugomas pagal numeruotą indeksą. Pirmas elementas turi indeksą 0, antras 1 ir taip toliau.
PHP kalboje masyvui sukurti yra keletas metodų.
Pirmas masyvo sukurimo metodas
1 |
$masinos = array("BMW","Audi");
|
Antras masyvo sukurimo metodas
1 2 3 |
$masinos[0] = "BMW"; $masinos[1] = "Audi"; |
Nesvarbu kurį metodą panaudosime – gausime lygiai tą patį rezultatą – masyvą su dvejais elementais. Vėliau masyvo elementus galime keisti, atspausdinti.
1 |
echo "Aš turiu ".$masinos[0]. " automobilį.";
|
Naršyklėje matysime „Aš turiu BMW automobilį.“
Tokiame masyve kiekvienas ID yra susiejamas su žodžiu. Pavyzdžiui norime turėti masyvą, kuriame saugotume žmonių vardus ir duomenis apie juos. Pradžiai užteks jų metų:
1 |
$metai = array("Gerda"=>20, "Lukas"=>22, "Saulius"=>44);
|
Lygiai tą patį galime padaryti ir antruoju metodu:
1 2 3 |
$metai ['Gerda'] = "20"; $metai ['Lukas'] = "22"; $metai ['Saulius'] = "44"; |
Vėliau, galime atspausdinti reikšmes pasinaudojant vardu:
1 2 3 4 5 6 7 |
<?php $metai ['Gerda'] = "20"; $metai ['Lukas'] = "22"; $metai ['Saulius'] = "44"; echo "Gerdai yra " . $metai['Gerda'] . " metų."; ?> |
Naršyklėje matysime:
Gerdai yra 20 metų.
Kelių dimensijų masyvuose yra saugomi masyvai masyvuose. Tai reiškia, kad masyvo elementai gali saugoti ne tik vieną reikšmę, bet ištisus masyvus reikšmių. Tie vidiniai masyvai gali turėti kitus masyvus ir tokiu būdu gaunasi kelių dimensijų masyvai.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php $zmones = array ( "Lukas"=>array ( "metai" => 22, "gyvenamoji_vieta" => "Kaunas" ), "Gerda"=>array ( "metai" => 22, "gyvenamoji_vieta" => "Kaunas" ) ); ?> |
Jei norime šio masyvo elementus panaudoti tekste, naudojame tokį kodą:
1 2 3 |
print "Čia gyvena Lukas. Jam yra ". $zmones["Lukas"]["metai"]." metai. Jo gyvenamoji vieta yra ".$zmones["Lukas"]["gyvenamoji_vieta"]; |
Naršyklėje matysime:
Čia gyvena Lukas. Jam yra 22 metai. Jo gyvenamoji vieta yra Kaunas.
Viso šio masyvo struktūra atrodo taip:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Array ( [Lukas] => Array ( [metai] => 22 [gyvenamoji_vieta] => Kaunas ) [Gerda] => Array ( [metai] => 22 [gyvenamoji_vieta] => Kaunas ) ) |