PHP Arrays
Den komplette guide til arrays i PHP — fra grundlæggende til avanceret array-håndtering.
Foto: Pankaj Patel / Unsplash
Hvad er et PHP array?
Et array er en datastruktur der kan indeholde flere værdier under ét variabelnavn. I PHP er arrays ekstremt fleksible — de fungerer samtidig som lister, ordbøger (dictionaries) og køer. Uanset om du arbejder med en simpel liste af navne eller en kompleks datastruktur fra en API, er arrays det primære værktøj.
PHP har tre typer arrays: indexed arrays (numeriske nøgler), associative arrays (navngivne nøgler) og multidimensional arrays (arrays inde i arrays). Moderne PHP 8+ har desuden tilføjet nye features der gør array-håndtering endnu mere effektiv.
Indexed Arrays
Indexed arrays bruger numeriske nøgler der starter fra 0. De er ideelle til ordnede lister hvor positionen er vigtig.
<?php
// Opret et indexed array
$frameworks = ['Laravel', 'Symfony', 'CodeIgniter', 'Slim'];
// Tilgå elementer via index
echo $frameworks[0]; // Laravel
echo $frameworks[2]; // CodeIgniter
// Tilføj element
$frameworks[] = 'CakePHP';
// Loop med foreach
foreach ($frameworks as $index => $framework) {
echo "{$index}: {$framework}\n";
}
// Antal elementer
echo count($frameworks); // 5count() returnerer antal elementer. Brug empty() til at tjekke om et array er tomt.
Associative Arrays
Associative arrays bruger navngivne nøgler (strings) i stedet for tal. De minder om dictionaries i Python eller objects i JavaScript, og er perfekte til strukturerede data.
<?php
// Associative array
$config = [
'database' => 'mysql',
'host' => 'localhost',
'port' => 3306,
'charset' => 'utf8mb4',
];
// Tilgå via nøgle
echo $config['database']; // mysql
// Tilføj eller opdater
$config['timeout'] = 30;
$config['port'] = 5432; // Overskriver
// Tjek om nøgle eksisterer
if (array_key_exists('host', $config)) {
echo "Host: {$config['host']}";
}
// Null coalescing - sikker tilgang
$debug = $config['debug'] ?? false;Null coalescing operatoren ?? er ideel til at håndtere manglende array-nøgler uden fejl.
Multidimensional Arrays
Når du har brug for at repræsentere komplekse datastrukturer — som databaseresultater, API-svar eller konfigurationer — bruges arrays inde i arrays.
<?php
$users = [
[
'name' => 'Anna',
'email' => 'anna@example.dk',
'roles' => ['admin', 'editor'],
],
[
'name' => 'Bo',
'email' => 'bo@example.dk',
'roles' => ['viewer'],
],
];
// Tilgå nested data
echo $users[0]['name']; // Anna
echo $users[0]['roles'][1]; // editor
// Loop gennem nested arrays
foreach ($users as $user) {
echo "{$user['name']}: " . implode(', ', $user['roles']) . "\n";
}Vigtige Array-funktioner
PHP har over 80 indbyggede array-funktioner. Her er de mest brugte — de tre funktioner du bør mestre først er array_map, array_filter og array_reduce.
array_map — Transformér hvert element
<?php
$prices = [100, 250, 75, 500];
// Tilføj moms (25%)
$withVat = array_map(fn($price) => $price * 1.25, $prices);
// [125, 312.5, 93.75, 625]
// Formatér som danske kroner
$formatted = array_map(
fn($price) => number_format($price, 2, ',', '.') . ' DKK',
$withVat
);
// ["125,00 DKK", "312,50 DKK", ...]array_filter — Filtrér elementer
<?php
$numbers = [1, 0, 3, null, 5, '', 7];
// Fjern falsy values
$clean = array_filter($numbers);
// [1, 3, 5, 7]
// Custom filter: kun lige tal
$even = array_filter([1, 2, 3, 4, 5, 6], fn($n) => $n % 2 === 0);
// [2, 4, 6]
// Filtrér users med admin-rolle
$admins = array_filter($users, fn($user) =>
in_array('admin', $user['roles'])
);array_reduce — Reducer til én værdi
<?php
$cart = [
['product' => 'Tastatur', 'price' => 799],
['product' => 'Mus', 'price' => 399],
['product' => 'Monitor', 'price' => 3499],
];
// Summer alle priser
$total = array_reduce(
$cart,
fn($sum, $item) => $sum + $item['price'],
0
);
echo $total; // 4697Flere nyttige funktioner
array_merge()Sammenfletter to eller flere arraysarray_unique()Fjerner duplikerede værdierarray_slice()Udtræk en del af et arrayarray_keys()Returnerer alle nøglerarray_values()Returnerer alle værdier (reindexeret)array_combine()Opret array fra nøgle- og værdi-arrayssort() / asort()Sortér efter værdi (med/uden nøgler)usort()Sortér med custom sammenligningsfunktionModerne PHP Array Features
PHP 7.4+ og 8.x har indført flere features der gør array-arbejde mere elegant. Disse features er tilgængelige i alle aktive PHP-versioner.
Spread Operator (...)
<?php
$frontend = ['React', 'Vue', 'Svelte'];
$backend = ['Laravel', 'Symfony', 'Slim'];
// Merge med spread operator
$allFrameworks = [...$frontend, ...$backend];
// ['React', 'Vue', 'Svelte', 'Laravel', 'Symfony', 'Slim']
// I funktionskald
function sum(int ...$numbers): int {
return array_sum($numbers);
}
echo sum(1, 2, 3, 4); // 10Array Destructuring
<?php
// List-syntax (PHP 7.1+)
$coordinates = [55.6761, 12.5683];
[$lat, $lng] = $coordinates;
// Med nøgler (associative destructuring)
$user = ['name' => 'Henrik', 'age' => 35, 'city' => 'København'];
['name' => $name, 'city' => $city] = $user;
echo "{$name} bor i {$city}"; // Henrik bor i København
// I foreach
$points = [[1, 2], [3, 4], [5, 6]];
foreach ($points as [$x, $y]) {
echo "({$x}, {$y})\n";
}Lær PHP med Video
freeCodeCamps fulde PHP-kursus dækker også arrays og array-funktioner i detaljer:
PHP Programming Language Tutorial af freeCodeCamp.org