Operații cu array-uri
Funcția is_array
Funcția is_array() verifică dacă o variabilă este un array și, dacă este, returnează true, altfel returnează false. De exemplu:
<?php
$users = ["Tom", "Bob", "Sam"];
$isArray = is_array($users);
echo ($isArray==true)?"este un array":"nu este un array";
?>
Funcțiile count / sizeof
Funcțiile count() și sizeof() obțin numărul de elemente dintr-un array:
<?php
$users = ["Tom", "Bob", "Sam"];
$number = count($users);
// același lucru cu
// $number = sizeof($users);
echo "Array-ul users are $number elemente";
?>
Funcția shuffle
Funcția shuffle amestecă elementele array-ului în mod aleatoriu:
<?php
$users = ["Tom", "Bob", "Sam", "Alice"];
shuffle($users);
print_r($users);
// un exemplu de rezultat posibil
// Array ( [0] => Bob [1] => Tom [2] => Alice [3] => Sam )
?>
Funcția compact.
Funcția compact permite crearea unui array asociativ dintr-un set de variabile, unde cheile vor fi numele variabilelor:
<?php
$model = "Apple II";
$producer = "Apple";
$year = 1978;
$data = compact("model", "producer", "year");
print_r($data);
// rezultatul va fi
// Array ( [model] => Apple II [producer] => Apple [year] => 1978 )
?>
Sortarea array-urilor
În PHP există două tipuri de sortare: sortarea șirurilor în ordine alfabetică și sortarea numerelor în ordine crescătoare/descrescătoare.
Dacă valorile sortate sunt șiruri, acestea vor fi sortate în ordine alfabetică; dacă sunt numere, acestea vor fi sortate în ordine crescătoare. PHP alege automat tipul de sortare.
Pentru sortarea în ordine crescătoare se folosește funcția asort:
<?php
$users = ["Tom", "Bob", "Sam", "Alice"];
asort($users);
print_r($users);
// rezultatul sortat
// Array ( [3] => Alice [1] => Bob [2] => Sam [0] => Tom )
?>
Funcția asort sortează array-ul pe baza valorilor elementelor. De asemenea, cu un parametru suplimentar, putem specifica tipul de sortare:
- SORT_REGULAR: sortare automată
- SORT_NUMERIC: sortare numerică
- SORT_STRING: sortare alfabetică
Indicăm tipul de sortare:
asort($users, SORT_STRING);
Pentru sortarea array-ului în ordine descrescătoare se folosește funcția arsort:
arsort($users);
Sortarea pe baza cheilor
Funcția asort efectuează sortarea pe baza valorilor elementelor, dar există și sortarea pe baza cheilor, reprezentată de funcția ksort:
<?php
$states = ["Spain" => "Madrid", "France" => "Paris", "Germany" => "Berlin"];
asort($states);
print_r($states);
// array-ul după asort - sortare pe baza valorilor
// Array ( [Germany] => Berlin [Spain] => Madrid [France] => Paris )
ksort($states);
print_r($states);
// array-ul după ksort - sortare pe baza cheilor
// Array ( [France] => Paris [Germany] => Berlin [Spain] => Madrid )
?>
Pentru sortarea pe baza cheilor în ordine descrescătoare se folosește funcția krsort:
krsort($states);
Sortarea naturală
Deși funcțiile de sortare descrise mai sus funcționează bine, ele pot avea limitări. De exemplu, să sortăm următorul array:
<?php
$os = ["Windows 7", "Windows 8", "Windows 10"];
asort($os);
print_r($os);
// rezultatul
// Array ( [2] => Windows 10 [0] => Windows 7 [1] => Windows 8 )
?>
Cum valorile sunt șiruri, PHP le sortează în ordine alfabetică, ceea ce nu ține cont de numere și case-sensitive. Pentru a rezolva această problemă, PHP oferă funcția natsort(), care efectuează sortarea naturală:
<?php
$os = ["Windows 7", "Windows 8", "Windows 10"];
natsort($os);
print_r($os);
// rezultatul
// Array ( [0] => Windows 7 [1] => Windows 8 [2] => Windows 10 )
?>
Dacă dorim ca sortarea să nu fie case-sensitive, putem folosi funcția natcasesort():
natcasesort($os);