๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑
WEBTOOLS FORUM - RECOMMENDED SETTINGS/SETARI RECOMANDATE: BROWSER=MOZILLA FIREFOX OR IE REZOLUTION=1280x1024| FORUMUL ESTE IN PLINA DEZVOLTARE VA RUGAM SA NE AJUTATI! ► DATA INFIINTARII: 19-07-2008 ►
Lista Forumurilor Pe Tematici
๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑ | Inregistrare | Login

POZE ๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑

Nu sunteti logat.
Nou pe simpatie:
princess79 la Simpatie.ro
Femeie
25 ani
Bucuresti
cauta Barbat
25 - 60 ani
๑۩۞۩๑ » WEBTOOLS « ๑۩۞۩๑ / » TURORIALE PHP « / Lucrul cu funcţii listă Moderat de AndreyNek, MadaLino
Autor
Mesaj Pagini: 1
MadaLino
Moderator

Din: Hotel Paradis
Inregistrat: acum 17 ani
Postari: 240
În afară de modalităţile de parcurgere iterativă a tablourilor, PHP oferă numeroase funcţii care permit traversarea tablourilor, deplasându-vă înainte sau înapoi, după dorinţă. Prima dintre aceste funcţii este current(), care returnează valoarea curentă a tabloului. Funcţia current() foloseşte un pointer intern de tablou pe care PHP îl creează pentru fiecare tablou. Când creaţi un tablou, pointerul intern de tablou este configurat astfel încât să facă referire la primul element al tabloului. Funcţiile next() şi prev() modifică pointerul intern al tabloului şi se pot folosi alături de funcţia current() pentru a parcurge un tablou. Funcţia next(), aşa cum îi arată şi numele, modifică pointerul intern al tabloului astfel încât acesta să facă referire la următorul element, în timp ce funcţia prev() modifică pointerul intern al tabloului astfel încât acesta să facă referire la elementul anterior. Iată un exemplu care prezintă modul de operare al celor 3 funcţii:


Cod:

<?php
$test = array(10=>"aaa", 20 => "bbb", 21 => "ccc";
$curent = current($test);
echo "<br>functia current() a returnat $curent";
$urmator = next($test);
echo "<br>functia next() a returnat $urmator";
$urmator = next($test);
echo "<br>functia next() a returnat $urmator";
$anterior = prev($test);
echo "<br>functia prev() a returnat $anterior";
?>


Datele de ieşire sunt:


Citat:

functia current() a returnat aaa
functia next() a returnat bbb
functia next() a returnat ccc
functia prev() a returnat bbb


Funcţia key()

Funcţia key() este corelată cu funcţia current(). Dacă funcţia current() returnează valoarea asociată elementului curent, funcţia key() returnează cheia asociată elementului curent. Exemplu:


Cod:

<?php
$test = array(10=>"aaa", 20 => "bbb", 21 => "ccc";
$curent = current($test);
$cheie = key($test);
echo "<br>functia current() a returnat $curent";
echo "<br>functia key() a returnat $cheie";
?>


Datele de ieşire sunt:


Citat:

functia current() a returnat aaa
functia key() a returnat 10


Funcţia each()

O altă funcţie utilă în parcurgerea tablourilor este each(). Funcţia each() returnează următoarea pereche cheie-valoare din tabloul specificat. Perechea cheie-valoare este returnată sub forma unui tablou asociativ cu patru elemente, după cum urmează:

Cheie    
Valoare
0     Componenta cheie a perechii cheie-valoare curentă
1     Componenta valoare a perechii cheie-valoare curentă.
"key"     Componenta cheie a perechii cheie-valoare curentă
"value"     Componenta valoare a perechii cheie-valoare curentă.


Observaţi că puteţi folosi valoarea cheie "0" sau "cheie" pentru a obţine accesul la componenta cheie a perechii cheie-valoare; similar, puteţi folosi valoarea cheie "1" sau "valoare" pentru a obţine accesul la componenta valoare a perechii cheie-valoare. Iată mai jos un exemplu al funcţiei each():


Cod:

<?php
$test = array(10=>"aaa", 20 => "bbb", 21 => "ccc";
$fiecare = each($test);
$zero = $each[0];
$unu = $each[1];
$cheie = $each['key'];
$valoare = $each['value'];
echo "<br>zero = $zero";
echo "<br>unu = $unu";
echo "<br>cheie = $cheie";
echo "<br>valoare = $valoare";
?>


Datele de ieşire sunt:


Citat:

zero = 10
unu = aaa
cheie = 10
valoare = aaa


Funcţia list()

O altă funcţie utilă în lucrul cu tablouri este funcţia list(), care vă permite să atribuiţi valori la numeroase variabile în cadrul unei instrucţiuni. Funcţia list() este deseori folosită cu funcţia each(), deoarece funcţia list() facilitează accesul separat la cheia şi la valoarea returnate de funcţia each(). Forma generala de utilizare a funcţiei list() este:

list($var1, $var2, ..., $varn) = valoare_tablou;

Fiecare dintre variabilele specificate, de la $var1 la $varn, primeşte o valoare din tabloul valoare_tablou. Într-un fel, funcţia list() este opusă funcţiei array(), deoarece funcţia list() împarte un tablou într-o serie de valoari scalare, în timp ce funcţia array() construieşte un tablou dintr-o serie de valori scalare. Iată un exemplu de utilizare a funcţiei list():


Cod:

<?php
$test = array(10=>"aaa", 20 => "bbb", 21 => "ccc";
list($cheie, $valoare) = each($test);
echo "<br>cheie = $cheie, valoare = $valoare";
$urmator = $next($test);
echo "<br>urmator = $urmator";
?>


Datele de ieşire sunt:


Citat:

cheie = 10, valoare = aaa
urmator = bbb


PHP conţine peste 40 de funcţii pentru lucrul cu tablourile. De exemplu, funcţia array_search() facilitează căutarea într-un tablou.


Sortarea tablourilor

Sortarea reprezintă o altă operaţie frecvent aplicată tablourilor. PHP furnizează o suită de funcţii care facilitează sortarea unui tablou. De exemplu, un tablou poate fi creat după cum urmează:

$limbaje = array(1=>"Perl", 2=>"PHP", 4=>"Python";

Apoi, doriţi să sortaţi tabloul în funcţie de numele limbajului de programare. Pentru aceasta, pur şi simplu invocaţi funcţia sort():

sort($limbaje);

După sortare, conţinutul tabloului apare aşa:

0 => PHP
1 => Perl
2 => Python

Observaţi că secvenţa de sortare sau secvenţa de aranjare (cum este numită uneori) este sensibilă la diferenţa dintre majuscule şi minuscule. Deoarece litera H mare este sortata anterior literei e mic, PHP apare înainte de Python în datele de ieşire sortate. Tabelul de mai jos prezintă pe scurt funcţiile de sortare ale limbajului PHP, inclusiv rezultatul aplicării fiecărei funcţii tabloului folosit în exemplul anterior.

Operaţie    
Funcţie
    Rezultat
Sortarea unui tablou în funcţie de valoare     sort()     0 => PHP
1 => Perl
2 => Python
Sortarea unui tablou asociativ în funcţie de valoare     asort()     2 => PHP
1 => Perl
4 => Python
Sortarea unui tablou după valoare, în ordine descendentă     rsort()     0 => Python
1 => Perl
2 => PHP
Sortarea unui tablou asociativ după valoare, în ordine descendentă     Arsort()     4 => Python
1 => Perl
2 => PHP
Sortarea unui tablou sau a unui tablou asociativ în funcţie de cheie     ksort()     1 => Perl
2 => PHP
4 => Python
Sortarea unui tablou sau a unui tablou asociativ în funcţie de cheie, în ordine descendentă     Krsort()     4 => Python
2 => PHP
1 => Perl


Dacă doriţi să efectuaţi o căutare fără sensibilitate la diferenţa între majuscule şi minuscule, o modalitate ar fi utilizarea funcţiei natcasesort(), care sortează un tablou folosind o "ordine naturală", care nu este sensibilă la diferenţa între majuscule şi minuscule. O altă modalitate constă în a utiliza funcţia usort() sau una dintre funcţiile sale conexe, în speţă uksort() şi uasort(). Aceste funcţii vă permit să definiţi o secvenţă de aranjare personalizată, pe care o specificaţi prin desemnarea unei funcţii care compară valorile în conformitate cu secvenţa de aranjare. Funcţia usort() sortează valorile din tablou şi returnează un tablou secvenţial; funcţia uksort() sortează cheile tabloului, iar funcţia uasort() sortează un tablou asociativ. De exemplu, următoarele instrucţiuni creează un tablou şi îl sortează într-o manieră insensibilă la diferenţa între majuscule şi minuscule:

$limbaje = array("Perl", "PHP", "Python";
usort($limbaje, "strcmpcase";

Funcţia strcmpcase() este o funcţie din biblioteca PHP care compară două şiruri fără a ţine cont de mărimea literelor (majuscule sau minuscule). Funcţia returnează o valoare negativă dacă primul şir este mai mic decât al doilea, zero dacă şirurile sunt identice, respectiv o valoare pozitivă dacă primul şir este mai mare decât ala doilea. Puteţi implementa o secvenţă de aranjare personalizată scriind propria dumneavoastră funcţie şi specificând numele acesteia ca argument al funcţiei usort() sau al uneia din funcţiile sale conexe. Pur şi simplu scrieţi o funcţie care preia două argumente şir şi returnează -1, 0 sau =1, în funcţie de rezultatul comparaţiei între valorile şir.


_______________________________________


" Cui nu-i place cum gandesc multa    ii doresc ! "



pus acum 17 ani
   
Pagini: 1