PHP Associative Arrays
An associative array stores values under string (or non-sequential integer) keys. PHP's equivalent of a dictionary or hash map.
Create
PHP
$ages = [
'Ada' => 36,
'Grace' => 56,
'Linus' => 42,
];
Access
PHP
echo $ages['Ada']; // 36
echo $ages['Tim'] ?? 'unknown'; // null coalesce — no PHP warning
echo array_key_exists('Ada', $ages); // true (1)
Set & remove
PHP
$ages['Tim'] = 70; // add or update unset($ages['Grace']); // remove
Iterate
PHP
foreach ($ages as $name => $age) {
echo "$name is $age", PHP_EOL;
}
Keys, values, merge
PHP
print_r(array_keys($ages)); // names print_r(array_values($ages)); // ages print_r(array_flip($ages)); // swap keys and values $merged = array_merge($defaults, $overrides); $merged = [...$defaults, ...$overrides]; // spread — same idea
JSON shape
Associative arrays serialize to JSON objects. Indexed arrays become JSON arrays:
PHP
echo json_encode($ages); // {"Ada":36,"Grace":56,"Linus":42}
echo json_encode([1, 2, 3]); // [1,2,3]
echo json_encode([], JSON_FORCE_OBJECT); // {} not []
Tip: Keys are case-sensitive.
$arr['name'] and $arr['Name'] are different entries — pick a convention and stick with it.Example
Example
<?php
$ages = ['Ada' => 36, 'Grace' => 56, 'Linus' => 42];
foreach ($ages as $name => $age) {
echo "$name is $age", PHP_EOL;
}
Try it Yourself »
Exercise
Read with safe fallback using null-coalesce.
$ages['Tim']
'unknown'
Two characters.
Discussion
Loading…