Array-uri asociative
Array-urile asociative reprezintă un tip de array în care, spre deosebire de array-urile obișnuite, cheile sunt șiruri de caractere.
La crearea unui array asociativ, specificăm explicit cheia elementului, urmată de operatorul => și valoarea elementului. De exemplu, crearea unui array asociativ folosind funcția array():
$words = array("red" => "roșu", "blue" => "albastru", "green" => "verde");
Aici se creează array-ul $words cu trei elemente. De exemplu, primul element are cheia "red" și valoarea "roșu".
Crearea unui array similar folosind paranteze pătrate:
$words = ["red" => "roșu", "blue" => "albastru", "green" => "verde"];
Folosind cheia, la fel ca în array-urile obișnuite, putem accesa elementele array-ului, de exemplu, pentru a obține sau modifica valoarea acestora:
<?php
$countries = ["Germany" => "Berlin", "France" => "Paris", "Spain" => "Madrid"];
echo $countries["Spain"]; // Madrid
echo "<br />";
$countries["Spain"] = "Barcelona";
echo $countries["Spain"]; // Barcelona
?>
Rezultatul scriptului:
Madrid
Barcelona
Pentru a adăuga un element cu o cheie nouă într-un array asociativ, este suficient să definim elementul cu acea cheie:
<?php
$countries = ["Germany" => "Berlin", "France" => "Paris", "Spain" => "Madrid"];
$countries["Italy"] = "Rome"; // definim un nou element cu cheia "Italy"
echo $countries["Italy"]; // Rome
?>
De asemenea, nu este necesar să inițializăm variabila array-ului la definirea sa. Putem adăuga elemente pe parcurs:
<?php
$countries["Germany"] = "Berlin";
$countries["France"] = "Paris";
$countries["Spain"] = "Madrid";
$countries["Italy"] = "Rome";
echo $countries["Italy"]; // Rome
?>
Pentru parcurgerea unui array asociativ, se utilizează ciclul foreach:
<?php
$words = ["red" => "roșu", "blue" => "albastru", "green" => "verde"];
foreach ($words as $english => $romanian) {
echo "$english : $romanian<br />";
}
?>
Rezultatul parcurgerii array-ului:
red : roșu
blue : albastru
green : verde
Array-uri mixte
PHP permite utilizarea atât a indicilor numerici, cât și a celor de tip șir de caractere într-un singur array:
$data = [1 => "Tom", "id132" => "Sam", 56 => "Bob"];
echo $data[1]; // Tom
echo "<br />";
echo $data["id132"]; // Sam
În acest exemplu, array-ul $data conține atât indici numerici, cât și indici de tip șir de caractere.