php i nizovi

Peruzzi

Domaćin
Poruka
4.066
nije mi jasan rad funkcija next,prev i zatim list i each.

P1.
Deo koda:

$Niz[4]="Cetvrti element";
$Niz[1]="Prvi element";
$Niz[58]="58i element";
$Niz[18]="18i element";

next($Niz);
next($Niz);

echo(key($Niz));

koju vrednost vraca key($Niz) ?
koju vrednost bi vratila ako na ovo dodam red prev($Niz); ?



2. list i each
citiram pasus iz knjige:
Ako idete kroz nesekvencijalni niz...Umesto da vasa petlja ide kroz gomilu praznih vrednosti funkcije list() i each() vasm omogucavaju da vratite samo one elemente koji sadrze podatke....

while(list(VrednostIndeksa, SadrzajElementa) = each (ImeNiza))

Ovo znaci: za svaki element niza ImeNiza definisi VrednostIndeksa jednaku indeksu elementa i SadrzajElementa jednak sadrzaju elementa.

Ovo mi nesto nije najjasnije. Koliko sam shvatio valjda ce da petlja prolazi kroz ceo niz i staje samo kod nepraznih elemenata i spakuje njihov indeks i vrednost u ove dve promenljive?




Lako bih ja ovo proverio ali nikako da instaliram php, ne da se...
 
koju vrednost vraca key($Niz) ?
koju vrednost bi vratila ako na ovo dodam red prev($Niz); ?
key($Niz) vraca indeks elementa u nizu, a prev($Niz) vrednost prethodnog indeksa (58 i Prvii element u tvom slucaju) .


Koliko sam shvatio valjda ce da petlja prolazi kroz ceo niz i staje samo kod nepraznih elemenata i spakuje njihov indeks i vrednost u ove dve promenljive?
Ovo su stvarno traljavo objasnili. Ustvari nije traljavo objasnjeno vec se ne upotrebljava vise na taj nacin.

Funkcija each() vraca niz odnosno indeks (ili kljuc) i vrednost elementa.
list() sluzi da vrednost clana niza dodelis promenljivoj.

Iz toga proizlazi da ce se promenljivama dodeliti vrednost kao sto si rekao, ali sve je to mnogo preglednije preko foreach iskaza:

umesto:
while(list(VrednostIndeksa, SadrzajElementa) = each (ImeNiza))

treba koristiti:
foreach($Niz as $VrednostIndeksa => $SadrzajElementa)

foreach je uveden od verzije php4 tako da ga danas svaki hosting podrzava i svakako je laksi za koriscenje od kombinacije list() each().

Poz!
 
znaci radi tako kako sam i mislio, jel?

ako prev daje vrednost prethodnog clana da li to znaci da se kursor pomeri na njega ili funkcija samo procita njegovu vrednost a kursor ostaje gde je?

i dalje mi nije dovoljno jasno, ali jeste jasnije.

hvala
 
Kada koristis prev() i next() interni pokazivac (kursor) se pomera na tog clana niza.

Postoji funkcija current() koja daje vrednost na koju upucuje interni pokazivac niza. Kada budes instalirao php mozes to sto ti nije jasno ispitati sa tom funkcijom.

Kod:
// current() vraca vrednost clana niza na kojem se interni pokazivac nalazi

next($Niz);
echo current($Niz); // ispisuje Prvi element

prev($Niz);
echo current($Niz); //Cetvrti element
 

Back
Top