Documente Academic
Documente Profesional
Documente Cultură
Ciclurile (buclele) sunt folosite atunci cand dorim sa executam de mai multe ori un
bloc (ex: parcurgerea unui vector).
while - verifica o conditie si daca aceasta este adevarata executa blocul de
dupa conditie. Pentru ca while verifica o conditie la inceput, ciclul este cu test initial.
Ex:
$i=5;
while ($i>=0)
do
?>
for - este un ciclu cu intitializare de parametru si cu test initial. Este folosit
acolo unde se doreste control total asupra numarului de iteratii (vectori).
Ex:
for ($contor=1;$contor<=10;$contor++) echo $contor."/";
Rezultatul va fi : 1/2/3/4/5/6/7/8/9/10/
Remarcam claritatea cu care se poate controla numarul de iteratii (de 10 ori).
Acelasi lucru l-am fi putut scrie cu ajutorul unei bucle while :
Ex:
$contor=0;
while ($contor<10) ;
$date[2]["nume"]="Hagi";
$date[2]["prenume"]="Gheorghe";
$date[2]["varsta"]=38;
$date[3]["nume"]="Pop";
$date[3]["prenume"]="Vasile";
$date[3]["varsta"]=19;
//parcurgerea si afisarea datelor
for ($i=1;$i<=3;$i++)
?>
Pentru a afla numarul de elemente al unui vector putem folosi functia count(), ce
admite ca parametru vectorul pentru care calculam numarul de elemente.
Ex:
//parcurgerea si afisarea datelor
for ($i=1;$i<=count($date);$i++)
Initializarea vectorilor se mai poate face folosind functia array().
Ex:
$orase=array("Bucuresti","Constanta","Iasi");
//automat se va crea indexul pornind de la 0
for ($i=0;$i<count($orase);$i++) echo $orase[$i];
//daca dorim ca indexul sa plece de la alt numar
$orase=array(1=>"Bucuresti",2=>"Constanta",3=>"Iasi");
for ($i=1;$i<=count($orase);$i++) echo $orase[$i];
//index de tip string
$orase=array("bu"=>"Bucuresti","ct"=>"Constanta","is"=>"Iasi");
//parcurgerea urmatoare nu va avea nici un sens
for ($i=1;$i<=count($orase);$i++) echo $orase[$i];
//in locul ei se poate parcurge vectorul utilizand functia foreach()
foreach ($orase as $valoarecurenta) echo $valoarecurenta."/";
Daca avem un vector initializat sub forma :
<?
$date=array(1=>"unu",30=>"doi","aa"=>"text");
?>
Nu am putea face nimic cu o bucla standard, ci doar cu foreach();
Vom folosi functia next() pentru a pozitiona pointerul pe inregistrarea urmatoare si
functia prev() pe cea dinainte si vom afisa folosindu-ne de functia key() ce returneaza
indexul curent.
<?
$date=array(1=>"unu",30=>"doi","aa"=>"text");
echo $date[key($date)];
next($date);
next($date);
echo $date[key($date)];
prev($date);
echo $date[key($date)];
?>
Ultima varianta de citire a vectorilor indexati non-secvential este folosind functiile
list() si each().
while(list($index,$element))= each ($date)
Sortarea vectorilor
Functia sort() este cea mai des folosita.
Ex:
$orase=array("zalau","constanta","iasi","bucuresti");
//afisare
for($i=0;$i<count($orase);$i++) echo $orase[$i]."/";
//rezulatul va fi afisat in ordinea definirii
sort($orase);
//afisare dupa sortare
for($i=0;$i<count($orase);$i++) echo $orase[$i]."/";
Functia rsort() sorteaza descrescator un vector (invers decat sort()).
Functia asort() sorteaza crescator un vector pastrand relatia element->index.
Ex:
$orase=array("bu"=>"bucuresti","is"=>"iasi","ct"=>"constanta");
asort($orase);
//afisare
foreach ($orase as $val) echo $val."/";
//in exemplul precedent (sort) la o afisare de forma
echo $orase["is"];
//se pierdea indexul, astfel ca la afisare ar fi scris constanta in loc de iasi.
Functia arsort() sorteaza descrescator un vector pastrand relatia element->index.
Functia ksort() sorteaza crescator un vector, dupa valoarea indexului, nu al
elementelor.
Ex:
$orase=array("bu"=>"bucuresti","is"=>"iasi","ct"=>"constanta");
ksort($orase);
//afisare
foreach ($orase as $val) echo $val."/";
implode() si explode()
In cazul in care avem un vector si dorim ca toate elementele sale sa le punem intr-un
string putem scrie :
Ex:
<?
$v=array("ion","matei","gheorghe");
foreach ($v as $val) $string.=$val.",";
//am folosit virgula ca delimitator
?>
Sau putem apela la functia implode() astfel :
<?
$v=array("ion","matei","gheorghe");
$string=implode(",",$v);
//in care virgula dintre ghilimele este de asemenea delimitator
?>
Inversa acestei functii este explode(), care transforma un string in care cuvintele cheie
sunt delimitate dupa un semn distinct intr-un vector al carui elemente sunt cuvintele
cheie, dupa cum urmeaza:
Ex:
<?
$string="ion,matei,gheorghe";
$v=explode(",",$string);
//afisarea se face standard
foreach ($v as $val) echo $val."<br>";
?>