PHP - Nizovi


Šta su nizovi u PHP-u?

Nizovi su složene varijable koje nam omogućavaju da pohranimo više od jedne vrijednosti ili grupe vrijednosti pod jedan naziv varijable. Pretpostavimo da želite pohraniti boje u PHP skriptu. Spremanje boja jedna po jednu u varijablu može izgledati ovako:

<?php
$color1 = "Crvena";
$color2 = "Zelena";
$color3 = "Plava";
?>

Ali što ako želite pohraniti države ili nazive gradova neke države u varijable, a ovaj put ne samo tri mogu biti stotine, porilično je teško, dosadno i loša ideja pohraniti svako ime grada u zasebnu varijablu. I ovdje nizovi ulaze u igra.



Vrste nizova u PHP-u

Postoje tri vrste nizova koje možete kreirati, a to su:

  • Indeksirani niz (Indexed array) - Niz s numeričkim tipom.
  • Asocijativni niz (Associative array) - Niz u kojem svaki ključ ima svoju specifičnu vrijednost.
  • Višedimenzionalni niz (Multidimensional array) - Niz koji sadrži jedan ili više nizova u sebi.


Indeksirani nizovi

Indeksirani ili numerički niz pohranjuje svaki element polja s numeričkim indeksom. Sljedeći primjeri pokazuju dva načina stvaranja indeksiranog niza, najlakši način je:

<?php
// Definiši indeksirani niz
$colors = array("Crvena", "Zelena", "Plava");
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Indeksirani nizovi</title>
</head>
<body>

<?php
// Definiši indeksirani niz
$colors = array("Crvena", "Zelena", "Plava");
?>

</body>
</html>

To je ekvivalentno sljedećem primjeru u kojem se indeksi dodjeljuju ručno:

<?php
$colors[0] = "Crvena"; 
$colors[1] = "Zelena"; 
$colors[2] = "Plava"; 
?>


Asocijativni nizovi

U asocijativnom polju, ključevi dodijeljeni vrijednostima mogu biti proizvoljni i korisnički definisani nizovi. U sljedećem primjeru matrica koristi znakove umjesto brojeva indeksa:

<?php
// Definisanje asocijativnog niza
$ages = array("Miloš"=>29, "Maja"=>32, "Dragana"=>28);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Asocijativni nizovi</title>
</head>
<body>

<?php
// Definisanje asocijativnog niza
$ages = array("Miloš"=>29, "Maja"=>32, "Dragana"=>28);
?>

</body>
</html>

Sljedeći primjer je ekvivalentan prethodnom primjeru, ali pokazuje drugačiji način stvaranja asocijativnih nizova:

<?php
$ages["Miloš"] = "29";
$ages["Maja"] = "32";
$ages["Dragana"] = "28";
?>


Višedimenzionalni nizovi

Višedimenzionalni niz je niz u kojem svaki element može biti i niz, a svaki element u potpolju može biti niz ili dalje sadržavati niz unutar sebe i tako dalje. Primjer višedimenzionalnog niza izgledat će ovako:

<?php
// Definisanje multidimenzijonalnog niza
$contacts = array(
    array(
        "name" => "Miloš Mihaljica",
        "email" => "milosmihaljica@mail.com",
    ),
    array(
        "name" => "Stefan Bajić",
        "email" => "stefanbajic@mail.com",
    ),
    array(
        "name" => "Marko Marković",
        "email" => "markomarkovic@mail.com",
    )
);
// Pristupanje ugnježđenoj vrijednosti
echo "Email od Miloša Mihaljica je: " . $contacts[0]["email"];
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Multidimenzionalni nizovi</title>
</head>
<body>

<?php
// Definisanje multidimenzijonalnog niza
$contacts = array(
    array(
        "name" => "Miloš Mihaljica",
        "email" => "milosmihaljica@mail.com",
    ),
    array(
        "name" => "Stefan Bajić",
        "email" => "stefanbajic@mail.com",
    ),
    array(
        "name" => "Marko Marković",
        "email" => "markomarkovic@mail.com",
    )
);
// Pristupanje ugnježđenoj vrijednosti
echo "Email od Miloša Mihaljica je: " . $contacts[0]["email"];
?>

</body>
</html>


Pregled strukture i vrijednosti niza

Možete vidjeti strukturu i vrijednosti bilo koje matrice pomoću jednog od dva iskaza - var_dump() ili print_r(). Izjava print_r(), međutim, daje nešto manje informacija. Razmotrite sledeći primer:

<?php
// Definisanje niza
$cities = array("London", "Pariz", "New York");
 
// Ispiši gradove u nizu
print_r($cities);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Vrijednost i struktura niza</title>
</head>
<body>

<?php
// Definisanje niza
$cities = array("London", "Pariz", "New York");
 
// Ispiši gradove u nizu
print_r($cities);
?>

</body>
</html>

Izjava print_r() daje sljedeći izlaz:


Array ( [0] => London [1] => Pariz [2] => New York )


Ovaj izlaz pokazuje ključ i vrijednost za svaki element u nizu. Da biste dobili više informacija, koristite sljedeću izjavu:

<?php
// Definisanje niza
$cities = array("London", "Pariz", "New York");
 
// Ispiši gradove u nizu
var_dump($cities);
?>
Pogledajmo kako koristiti primjer u praksi:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>PHP Dobijanje kompletnih informacija o nizu</title>
</head>
<body>

<?php
// Definisanje niza
$cities = array("London", "Pariz", "New York");
 
// Ispiši gradove u nizu
var_dump($cities);
?>

</body>
</html>

Ova izjava var_dump() daje sljedeći izlaz:


array(3) { [0]=> string(6) "London" [1]=> string(5) "Pariz" [2]=> string(8) "New York" }


Ovaj izlaz pored ključa i vrijednosti prikazuje vrstu podataka svakog elementa, kao što je niz od 6 znakova. U sljedećim lekcijama naučićete kako sortirati elemente niza, a naučitćete i kako se kretati kroz vrijednosti polja.