IZRADA SAJTA za 10 €

Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa


KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA
Igrice
Slike

Pristup asocijativnim jednodimenzionalnim nizovima

Indeksi u asocijativnim nizovima nisu brojevi pa for petlja je zato neupotrebljiva. Može da se koristi foreach petlja koja je na kraju krajeva zbog asocijativnih nizova i izmišljena. Takodje mogu da se koriste funkcije list i each. Evo na konkretnim primerima da vidimo pristup elementima asocijativnog niza:

$boja_kose = array (
"Milan"=>"plava",
"Pera"=>"smedja",
"Vesna"=>"crvena",
"Suza"=>"crna",
"Steva"=>"crna");
foreach ($boja_kose as $index => $vrednost){
   echo "boja kose[".$index."]=".$vrednost."<br>";
}
?>

Rezultat ove skripte je:

boja kose[Milan]=plava
boja kose[Pera]=smedja
boja kose[Vesna]=crvena
boja kose[Suza]=crna
boja kose[Steva]=crna

Drugi način je upotreba funkcije each i to ovako: 

$boja_kose = array (
"Milan"=>"plava",
"Pera"=>"smedja",
"Vesna"=>"crvena",
"Suza"=>"crna",
"Steva"=>"crna");
while ($elmenti_niza = each ($boja_kose)) {
   echo "boja kose[".$elementi_niza["key"]."]=".$elmenti_niza["value"]."<br>";
}
?>

Rezultat ove skripte je isti kao i prethodne skripte.

Kao što se u foreach petlji uvode dve privremene, takozvane pomoćne promenjljive (definisane su samo dok se izvršava foreach petlja) $indeks i $vrednost (koje možemo imenovati po volji), tako each funkcija uvodi pomoćni niz koga smo u našem slučaju imenovali sa $elementi_niza (znači ime pomoćnog niza sami dajemo). Taj pomoćni niz ima uvek dva elementa. Prvom elementu pomoćnog niza, koji je uvek indeksiran sa „key“ ili sa brojnom vrednošću 0, each funkcija automatski dodeljuje vrednost indeksa trenutnog tekućeg elementa niza $boja_kose kome pristupamo. Drugom elementu pomoćnog niza, koji je uvek indeksiran sa „value“ ili sa brojnom vrednošću 1, each funkcija automatski dodeljuje vrednost koju ima trenutni tekući element niza $boja_kose kome pristupamo. Dokle god each funkcija vraća definisane elemente niza $boja_kose dotle i while petlja vrši iteracije.

Uobičajniji način pristupa nizu je korišćenjem funkcije list i to na sledeći način:

$boja_kose = array (
"Milan"=>"plava",
"Pera"=>"smedja",
"Vesna"=>"crvena",
"Suza"=>"crna",
"Steva"=>"crna");
while (list($indeks,$vrednost)=each($boja_kose)){
   echo "boja kose[".$indeks."]=".$vrednost."<br>";
}
?>

Rezultat je isti kao i do sada.

Prvi parametar funkcije list je promenjliva koju možemo imenovati po volji i prihvata iz funkcije each tekuće indekse elemenata niza $boja_kose. Drugi parametar funkcije list takodje je promenjljiva koju isto možemo imenovati po volji, a ona prihvata iz funkcije each tekuće vrednosti elemenata niza $boja_kose.

Ako ne obradjujemo sve elemente niza već samo pojedine jer na primer znamo kad i kako da upotrebljavamo pojedine elemente niza, onda možemo koristiti i posebne funkcije za nizove kao što su current, next, prev, end i reset. Da ne bi smo mnogo filozofirali korišćenje navedenih funkcija najbolje se vidi na sledećem primeru:

<?php
$budzet = array("hrana","odeca","provod","gorivo","dazbine");
echo current ($budzet)."<br>";
echo next ($budzet)."<br>";
echo next ($budzet)."<br>";
echo prev ($budzet)."<br>";
echo end ($budzet)."<br>";
reset ($budzet);
echo current ($budzet)."<br>";
reset ($budzet);
echo next ($budzet);
?>

Rezultat skripte bi bio sledeći:

hrana
odeca
provod
odeca
dazbine
hrana
odeca

Ako želimo započeti sa pozivanjem prvog elementa, pored direktnog pozivanja na primer echo $transport[0], možemo koristiti funkciju current kao u primeru. Current funkcija može se koristiti i u sredini posle neke next funkcije kad želimo recimo opet isti element pozvati. Svaki sledeći element možemo pozivati funkcijom next. Ako nam je prva upotrebljena funkcija next onda će se pozvati drugi element niza. Prethodni elemenat ako nam je potreban u odnosu na onog koji je već pozvan na primer funkcijom next, onda ga pozivamo funkcijom prev. Drugim rečima funkcija next poziva elemente sa rastućim indexom a funkcija prev obrnuto sa opadajućim indexom. Ako želimo odmah zadnji element da pozovemo onda koristimo funkciju end. Ako smo negde recimo na sredini niza sa pozivima a želimo ponovo da započnemo pozive od početka onda se može sve resetovati funkcijom reset.

Pored ovih funkcija za pozivanje niza postoje i druge funkcije koje obradjuju nizove koje će mo kasnije objašnjavati.

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija