Functii pentru Array
Aici gasiti cateva din cele mai utile functii PHP pentru Array (matrice).
1. array_change_key_case(array, case)
– Transforma cheile din primul parametru (array) in majuscule sau litere mici, dupa cum e specificat la „case” (CASE_UPPER sau CASE_LOWER). Default e CASE_LOWER. Daca „array” nu e o matrice, returneaza FALSE.
<?php
$aray = array(„FirSt”=>1, „SecOnd”=>8);
print_r(array_change_key_case($aray, CASE_UPPER));
// Va afisa: Array ( [FIRST] => 1 [SECOND] => 8 )
?>
2. array_chunk(array, nr)
– Imparte „array” intr-un numar de sub-matrici, precizat la „nr”, indexate de la 0. Daca „array” nu are elemente, returneaza NULL.
<?php
$aray = array(‘a’, ‘b’, ‘c’, ‘d’, ‘e’);
print_r(array_chunk($aray, 2));
// Va afisa: Array ( [0]=>Array ( [0]=>a [1]=>b ) [1]=>Array ( [0]=>c [1]=>d ) [2]=>Array ( [0]=>e ) )
?>
3. array_combine(array_k, array_v)
– Creaza un array folosind valorile din „array_k” pentru chei, iar elementele din „array_v” pentru valorile lor. Numarul de elementele din cele 2 matrici trebuie sa fie egal, in caz contrar returneaza FALSE.
<?php
$a = array(‘a’, ‘b’, ‘c’);
$b = array(‘x’, ‘y’, ‘z’);
$c = array_combine($a, $b);
print_r($c);
// Va afisa: Array ( [a] => x [b] => y [c] => z )
?>
4. array_count_values(array)
– Returneaza o matrice cu numarul de repetari a fiecarui element din „array”.
<?php
$aray = array(‘a’, 8, ‘a’, ‘b’, ‘a’, 8, ‘c’);
$re = array_count_values($aray);
print_r($re);
// Return: Array ( [a] => 3 [8] => 2 [b] => 1 [c] => 1 )
?>
5. array_diff(array1, array2)
– Returneaza o matrice cu elementele din „array1” care nu se gasesc in „array2”.
<?php
$aray1 = array(„a”=>”green”, „blue”, „red”);
$aray2 = array(„b”=>”green”, „yellow”, „red”);
$re = array_diff($aray1, $aray2);
print_r($re);
// Va afisa: Array ( [1] => blue )
?>
6. array_flip(array)
– Schimba valorile si cheile intre ele. Din valorile care se repeta o pastreaza pe ultima.
<?php
$aray = array(„a”=>1, „b”=>2, „c”=>2);
$re = array_flip($aray);
print_r($re);
// Va afisa: Array ( [1] => a [2] => c )
?>
7. array_intersect(array1, array2, …)
– Returneaza o matrice cu toate valorile din „array1” care se gasesc in toati ceilalti „array” dati ca parametri.
<?php
$aray1 = array(„a”=>1, „b”=>’a’, „c”=>’d’, ‘e’);
$aray2 = array(8, ‘a’, ‘d’);
$aray3 = array(1, ‘a’, ‘c’, ‘d’);
$re = array_intersect($aray1, $aray2, $aray3);
print_r($re);
// Return: Array ( [b] => a [c] => d )
?>
8. array_key_exists(cheie, array)
– Returneaza TRUE daca „cheie” este o cheie (index) in matricea „array”, in caz contrar returneaza FALSE.
<?php
$aray = array(„a”=>1, „b”=>’a’, „mp”=>’d’);
if (array_key_exists(‘mp’, $aray)) {
echo ‘Cheia exista’;
}
?>
9. array_keys(array, val)
– Returneaza o matrice cu toate cheile din „array”. Parametrul „val” e optional, daca e specificat, va returna doar cheile cu valoarea „val”.
<?php
$aray = array(„a”=>1, „b”=>’c’, ‘d’, „mp”=>’d’);
$re = array_keys($aray);
print_r($re);
// Va afisa: Array ( [0] => a [1] => b [2] => 0 [3] => mp )
?>
10. array_map(„functie”, array)
– Aplica functia pentru fiecare element din „array”
<?php
function f_test($val) {
return $val+2;
}
$aray = array(„a”=>1, „b”=>’c’, 2);
$aray = array_map(„f_test”, $aray);
print_r($aray);
// Return: Array ( [a] => 3 [b] => 2 [0] => 4 )
?>
11. array_merge($array1, $array2, …)
– Uneste mai multe array in unul singur. Daca au cheie de tip sir identice, va fi pastrata valoarea ultimei chei.
<?php
$aray1 = array(„a”=>1, 3, 4);
$aray2 = array(„a”=>2, 8);
$re = array_merge($aray1, $aray2);
print_r($re);
// Va afisa: Array ( [a] => 2 [0] => 3 [1] => 4 [2] => 8 )
?>
12. array_pop(array)
– Elimina ultimul element din „array”, care va fi transferat ca valoarea returnata de „array_pop()”. Daca parametru nu e matrice sau e gol, returneaza NULL.
<?php
$aray = array(„a”=>1, 3, 4);
$re = array_pop($aray);
// $aray va avea acum: array(„a”=>1, 3);
echo $re; // 4
?>
13. array_product(array)
– Returneaza produsul elementelor din „array”
<?php
$aray = array(1, 2, 3, 4);
echo array_product($aray); // 24
?>
14. array_rand(aray, nr)
– Preia aleator un „nr” de chei din „array”, respectand ordinea lor. Daca „nr” e 1, va returna o cheie aleasa aleator. Altfel, returneaza o matrice cu acele chei preluate aleator.
<?php
$aray = array(‘x’=>’tutorial’, ‘y’=>8, ‘z’=>’php’, ‘curs’);
$ar_keys = array_rand($aray, 3); // Preia aleator 3 chei, si le aranjaza succesiv in $ar_keys
// Parcurge matricea cu cheile alese si afiseaza valoare corespunzatoare fiecareia
for($i=0; $i<count($ar_keys); $i++) {
$key = $ar_keys[$i];
echo $aray[$key]. ‘ – ‘;
}
// Return: tutorial – 8 – php –
?>
15. array_reverse(array)
– Returneaza „array” cu ordinea elementelor inversata.
<?php
$aray = array(1, 2, 3, ‘a’, ‘b’=>’c’);
$re = array_reverse($aray);
print_r($re);
// Return: Array ( [b] => c [0] => a [1] => 3 [2] => 2 [3] => 1 )
?>
16. array_search(„val”, array)
– Returneaza cheia din „array” care are valoarea „val”, sau FALSE daca nu exista. Cautarea e „case-sensitive”
<?php
$aray = array(1, 2, 3, ‘a’, ‘b’=>’c’);
$re = array_search(‘c’, $aray);
echo $re; b
?>
17. array_shift(array)
– Elimina primul element din „array”, care va fi transferat ca valoarea returnata de „array_shift()”. Cheile vor fi renumerotate de la 0. Daca parametru nu e matrice sau e gol, returneaza NULL.
<?php
$aray = array(„a”=>1, 3, 4);
$re = array_shift($aray);
// $aray va avea acum: array(3, 4);
echo $re; // 1
?>
18. array_slice(array, start, nr)
– Returneaza un „nr” din elementele lui „array’, incepand de la elementul numarul „start” (primul e 0), cate elemente arata „nr”. Daca „nr” nu e specificat, va fi considerat pana la ultimul.
<?php
$aray = array(„a”=>1, 3, 4, 5, 6, 7);
$re = array_slice($aray, 2, 3); // $re va avea: array(4, 5, 6)
$re = array_slice($aray, 3); // $re va avea: array(5, 6, 7
?>
19. array_sum(array)
– Returneaza suma elementelor din „array”
<?php
$aray = array(1, 2, 3, 4);
echo array_sum($aray); // 10
?>
20. array_unique(array)
– Returneaza matricea „array” fara valorile duplicate, acestea fiind luate o singura data.
<?php
$aray = array(1, 2, 1, 4, 3, 4);
$aray = array_unique($aray); // $aray va avea: array(1, 2, 4, 3)
?>
21. array_values(array)
– Returneaza o matrice cu toate valorile din „array”, ordonate numeric de la 0.
<?php
$aray = array(„a”=>1, „b”=>’c’, ‘d’, „mp”=>’d’);
$re = array_values($aray);
print_r($re);
// Va afisa: Array ( [0] => 1 [1] => c [2] => d [3] => d )
?>
22. arsort(array)
– Sorteaza un „array” cu valorile ordonate in ordine inversa alfabetic, pastrand corelatia dintre chei si valori. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘c’, „b”=>’xy’, ‘pm’, „mp”=>’de’);
arsort($aray);
// $aray va deveni: array(„b”=>’xy’, ‘pm’, „mp”=>’de’, ‘c’)
?>
23. asort(array)
– Sorteaza un „array” cu valorile ordonate in ordine alfabetica, pastrand corelatia dintre chei si valori. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘c’, „b”=>’xy’, ‘pm’, „mp”=>’de’);
arsort($aray);
// $aray va deveni: array(‘c’, „mp”=>’de’, ‘pm’, „b”=>’xy’)
?>
24. count(array)
– Returneaza numarul de elemente din „array”
<?php
$aray = array(‘c’, „b”=>’xy’, ‘pm’, „mp”=>’de’);
echo count($aray); // 4
?>
25. current(array);
– Returneaza valoarea elementului curent din „array”, daca nu are elemente returneaza FALSE. Fiecare matrice are un pointer intern, care prima data e setat la primul element.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
echo current($aray); // php
?>
26. end(array);
– Muta pointerul din „array” la ultimul element si returneaza valoarea lui, daca nu are elemente returneaza FALSE.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
echo end($aray); // curs
?>
27. implode(„separator”, array);
– Transforma „array” in sir (string), adaugand valorile intr-un sir, separate de ceea ce e specificat la „separator”.
<?php
$aray = array(‘www’, ‘PHPCursWeb’, ‘net’);
$sir = implode(‘.’, $aray);
echo $sir; // www.PHPCursWeb.net
?>
28. in_array(„val”, array)
– Verifica daca o matrice contine o anumita valoare. Returneaza TRUE daca vreunul din elementele din „array” are valoarea „val”, in caz contrar FALSE.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
if (in_array(‘tutorial’, $aray)) {
// Se executa ce se vrea
}
?>
29. key(array)
– Returneaza cheia elementului curent la care se afla pointerul
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
end($aray); // Muta pointerul la ultimul element
echo key($aray); // mp
?>
30. krsort(array)
– Sorteaza un „array” dupa chei ordonate in ordine inversa alfabetic, pastrand corelatia dintre chei si valori. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
krsort($aray);
// $aray va deveni: array(„mp”=>’curs’, ‘li’=>’php’, „free”=>’tutorial’, ‘mysql’)
?>
31. ksort(array)
– Sorteaza un „array” dupa chei ordonate in ordine alfabetica, pastrand corelatia dintre chei si valori. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
ksort($aray);
// $aray va deveni: array(‘mysql’, „free”=>’tutorial’, ‘li’=>’php’, „mp”=>’curs’)
?>
32. natcasesort(array)
– Sorteaza un „array” in ordine alfabetica a valorilor, case-insensitive, folosind ordinea naturala a numerelor. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’Php’, „free”=>’tutorial’, ‘MySQL’, „mp”=>’curs’);
natcasesort($aray);
// $aray va deveni: array(„mp”=>’curs’, ‘MySQL’, ‘li’=>’Php’, „free”=>’tutorial’)
?>
33. next(array);
– Avanseaza pointerul din „array” inainte cu un element si returneaza valoarea, daca nu are elemente returneaza FALSE.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
echo next($aray); // tutorial
?>
34. prev(array);
– Muta pointerul din „array” inapoi cu un element si returneaza valoarea, daca nu are elemente returneaza FALSE.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
end($aray); // Duce pointerul la ultimul element
echo prev($aray); // mysql
?>
35. reset(array);
– Readuce pointerul din „array” la primul element si returneaza valoarea lui, daca nu are elemente returneaza FALSE.
<?php
$aray = array(‘php’, „free”=>’tutorial’, ‘mysql’, „mp”=>’curs’);
next($aray); // Avanseaza pointerul cu un element
echo reset($aray); // php
?>
36. rsort(array)
– Sorteaza un „array” in ordine inversa alfabetic a valorilor (literele mici inaintea celor mari), stergand cheile initiale, devenind un Array asociativ cu chei de la 0. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’Php’, „free”=>’tutoriale’, ‘MySQL’, „mp”=>’curs’);
rsort($aray);
// $aray va deveni: array(‘tutoriale’, ‘curs’, ‘Php’, ‘MySQL’)
?>
37. sort(array)
– Sorteaza un „array” in ordine alfabetica a valorilor (literele mari inaintea celor mici), stergand cheile initiale, devenind un Array asociativ cu chei de la 0. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’Php’, „free”=>’tutoriale’, ‘MySQL’, „mp”=>’curs’);
rsort($aray);
// $aray va deveni: array(‘MySQL’, ‘Php’, ‘curs’, ‘tutoriale’)
?>
38. shuffle(array)
– Amesteca aleator elementele din „array”. Sterge cheile initiale, devenind un Array asociativ cu chei de la 0. In caz de succes returneaza TRUE, altfel, FALSE.
<?php
$aray = array(‘li’=>’Php’, „free”=>’tutoriale’, ‘MySQL’, „mp”=>’curs’);
shuffle($aray); // $aray va avea elementele amestecate aleator
?>
– Lista completa cu functiile PHP pentru lucru cu matrice o gasiti la pagina Functii pentru Array www.php.net