logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

PHP lekcije - lekcija 10 - Nizovi

26/05/2025, by Ivan

Prethodno smo razmatrali samo numeričke i string promenljive, a u ovoj lekciji upoznaćemo se sa nizovima. Nizovi mogu da sadrže i numeričke i string promenljive. Zato se oni i zovu nizovi.

Suština niza je sledeća: postoji mnogo ključeva niza i mnogo vrednosti niza. Svakom ključu niza pripada jedna vrednost. Na primer, imamo ključeve 1, 2, 3, a vrednosti mogu biti 4, 'Hello World', true. Nizovi se zapisuju kao i promenljive, sa znakom dolara:

$tree = array();

Samo što za kreiranje niza koristimo funkciju array().

U stvari, deklarisati niz kao i deklarisati promenljive u PHP-u nije obavezno. Ali za razumevanje tuđeg koda uvek je bolje videti odakle promenljive dolaze i kog su tipa.

A sada definišimo gore pomenuti niz:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
?>

Obratite pažnju na sintaksu. Prvo sve izgleda kao promenljiva kojoj dodeljujemo vrednost. Zatim ide ključna reč array, koja znači da će promenljiva biti niz. Zatim u okruglim zagradama idu parovi ključ/vrednost.

Pišu se na sledeći način:

array(
  ključ1 => vrednost1,
  ključ2 => vrednost2,
);

Prvo ide ključ, zatim znak jednako pa veće, bez razmaka. Nakon znaka veće ide razmak i vrednost koja odgovara ključu niza. Posle para ključ/vrednost stavlja se zarez. Tako za svaki par ključ/vrednost.

Niz se može zapisati i u jednoj liniji:

<?php
  $tree = array(1 => 4, 2 => 'Hello World', 3 => true,); 
?>

Promenljiva $tree biće ista kao u prvom primeru. Samo što je prvi način zapisivanja pregledniji. O pravilima pisanja ćemo kasnije, sada nam je važnije da razumemo suštinu.

Da bismo ispisali niz na ekran možemo koristiti funkciju print_r(). Za razliku od funkcije print, print_r koristi zagrade.

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print_r($tree);
?>

Kao rezultat, niz će biti ispisan na ekran:

Array ( [1] => 4 [2] => Hello World [3] => 1 )

Ako dodamo <pre> tag, prikaz niza biće lepši:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Dobija se nešto poput:

Array
(
    1 => 4,
    2 => 'Hello World',
    3 => true,
) 

Sada kada smo naučili kako se kreiraju nizovi, probajmo da izvučemo podatke iz niza:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  print $tree[2];
?>

Ovako smo izvukli drugi element niza 'Hello World' i ispisali ga na ekran. Da biste pristupili vrednosti nekog ključa, napišite ime promenljive niza, a zatim u uglastim zagradama taj ključ. Tako možete pozvati i $tree[1], $tree[3].

Sada pogledajmo kako dodati element u niz. Dovoljno je navesti prazni ključ:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[] = 'Još jedan element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Ovako ćemo dobiti niz:

Array
(
    [1] => 4
    [2] => Hello World
    [3] => 1
    [4] => Još jedan element
)

Kao što vidite, navodeći prazan ključ, PHP dodaje sledeći redni broj ključa. Ali možemo dodati i ključ koji nije uzastopni broj, već odmah navesti ključ u uglastim zagradama:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[6] = 'Drugi element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Rezultat je da imamo ključeve 1, 2, 3 i 6, a ključevi 4 i 5 ne postoje. Zato je važno zapamtiti da ako u nizu postoje ključevi na primer 103, 105, to ne znači da postoji i ključ 104. Proveriti da li postoji može se pomoću funkcije

if(empty($tree[104])){

}

Ako u uglastim zagradama navedemo već postojeći ključ, možemo prepisati vrednost:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    3 => true,
  ); 
  $tree[3] = 'Drugi element';
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

Neće biti kreiran novi element, ali će vrednost trećeg ključa biti prepisana.

Takođe, treba obratiti pažnju da ključ niza može biti i tekstualni:

<?php
  $tree = array(
    1 => 4,
    2 => 'Hello World',
    'key3' => true,
  ); 
  print '<pre>';
  print_r($tree);
  print '</pre>';
?>

U ovom slučaju, vrednost ključa piše se u navodnicima (jednostrukim ili dvostrukim). Takođe možemo pozvati vrednost niza:

print $tree['key3'];

Mislimo da je sa nizovima zasad sve jasno, jer sada ćemo pričati o višedimenzionalnim nizovima.

PHP višedimenzionalni nizovi

Višedimenzionalni nizovi, kao što ime kaže, imaju više dimenzija. Najjednostavnije objašnjenje može biti tablica množenja, gde imamo dva broja i rezultat koji zavisi od ta dva broja.

<?php
$multi = array();
$multi[1][1] = 1;
$multi[1][2] = 2;
$multi[1][3] = 3;
$multi[2][1] = 2;
$multi[2][2] = 4;
$multi[2][3] = 6;
$multi[3][1] = 3;
$multi[3][2] = 6;
$multi[3][3] = 9;
print '<pre>';
print_r($multi);
print '</pre>';
?>

Dok u jednodimenzionalnom nizu imamo jedan ključ, u dvodimenzionalnom imamo dva. U trodimenzionalnom - tri ključa i tako dalje. Pri tome redosled ključeva je bitan, tako da $multi[1][3] i $multi[3][1] su različiti brojevi.

<?php
$multi = array();
$multi[1][3] = 3;
$multi[3][1] = 'Hello, World!';
print '<pre>';
print_r($multi);
print '</pre>';
?>

Nizove možemo zadavati odmah za više vrednosti:

<?php
$multi = array(
  1 => array(
    1 => 1,
    2 => 2,
    3 => 3,
  ),
  2 => array(
    1 => 2,
    2 => 4,
    3 => 6,
  ),
  3 => array(
    1 => 3,
    2 => 6,
    3 => 9,
  ),
);
print '<pre>';
print_r($multi);
print '</pre>';
?>

Ako budem imao još primera o nizovima, dodaću ih kasnije, a za sada prelazimo na sledeću lekciju.