PHP Academy · Lektion

Flerdimensionelle arrays

Opret og navigér i arrays af arrays.

Lektion 2 af 413 trin

Flerdimensionelle arrays er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.

Flerdimensionelle arrays

Et flerdimensionelt array er et array, hvor hvert element selv er et array. Det bruges ofte til strukturerede data som databaseresultater eller konfigurationstræer.

Oprettelse af 2D-arrays

Opret og tilgå et todimensionelt array:

<?php
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
];

echo $matrix[1][2]; // 6 (row 1, col 2)
$matrix[0][0] = 99;
echo $matrix[0][0]; // 99

Array af associative arrays

Resultatsæt fra databaser er ofte arrays af associative arrays:

<?php
$users = [
    ['id' => 1, 'name' => 'Alice', 'role' => 'admin'],
    ['id' => 2, 'name' => 'Bob',   'role' => 'user'],
    ['id' => 3, 'name' => 'Carol', 'role' => 'user'],
];

echo $users[0]['name'];  // Alice
echo count($users);      // 3

Gennemløb af 2D-arrays

Brug indlejrede foreach-løkker til at gennemløbe alle rækker og kolonner:

<?php
$products = [
    ['name' => 'Widget', 'price' => 9.99],
    ['name' => 'Gadget', 'price' => 24.99],
];

foreach ($products as $product) {
    echo $product['name'] . ': $' . $product['price'] . PHP_EOL;
}

Sikker adgang til indlejrede nøgler

Brug null-coalescing-operatoren til sikkert at tilgå indlejrede nøgler, som måske ikke findes:

<?php
$config = [
    'database' => ['host' => 'localhost', 'port' => 3306],
    'cache'    => ['driver' => 'redis'],
];

$port     = $config['database']['port'] ?? 3306;
$password = $config['database']['password'] ?? '';

echo $port;     // 3306
echo $password; // (empty)

Tilføjelse til indlejrede arrays

Tilføj elementer dybt inde i et flerdimensionelt array:

<?php
$app = [];
$app['settings']['theme'] = 'dark';
$app['settings']['lang']  = 'en';

$app['users'][] = ['name' => 'Alice'];
$app['users'][] = ['name' => 'Bob'];

echo count($app['users']);       // 2
echo $app['settings']['theme'];  // dark

array_column()

array_column() udtrækker en enkelt kolonne fra et 2D-array:

<?php
$users = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Carol'],
];

$names = array_column($users, 'name');
print_r($names); // ['Alice', 'Bob', 'Carol']

// Re-index by id
$byId = array_column($users, null, 'id');
echo $byId[2]['name']; // Bob

Sortering af et 2D-array

Sortér rækker efter en feltværdi med usort():

<?php
$products = [
    ['name' => 'C Item', 'price' => 30],
    ['name' => 'A Item', 'price' => 10],
    ['name' => 'B Item', 'price' => 20],
];

usort($products, fn($a, $b) => $a['price'] <=> $b['price']);

foreach ($products as $p) {
    echo $p['name'] . PHP_EOL; // A Item, B Item, C Item
}

Rekursive operationer med array_walk_recursive

Anvend en callback på hvert blad i et indlejret array med array_walk_recursive():

<?php
$data = ['a' => 'hello', 'b' => ['c' => 'world', 'd' => 'php']];

array_walk_recursive($data, function(&$val) {
    $val = strtoupper($val);
});

print_r($data);
// ['a'=>'HELLO', 'b'=>['c'=>'WORLD','d'=>'PHP']]

JSON og flerdimensionelle arrays

PHP's flerdimensionelle arrays svarer direkte til JSON-objekter og -arrays:

<?php
$data = [
    'user'    => ['id' => 1, 'name' => 'Alice'],
    'scores'  => [95, 87, 92],
    'active'  => true,
];

$json = json_encode($data, JSON_PRETTY_PRINT);
echo $json;

$decoded = json_decode($json, true); // true = assoc array
echo $decoded['user']['name']; // Alice

array_merge kontra array_replace for indlejrede arrays

array_merge er ikke rekursiv; brug array_replace_recursive til at sammenflette indlejrede arrays korrekt:

<?php
$defaults = ['db' => ['host' => 'localhost', 'port' => 3306]];
$custom   = ['db' => ['host' => 'production.server.com']];

$config = array_replace_recursive($defaults, $custom);
echo $config['db']['host'];  // production.server.com
echo $config['db']['port'];  // 3306 — preserved from defaults

Hurtigt tjek

Hvilken funktion udtrækker en enkelt kolonne med værdier fra et 2D-array?

Opsummering: Flerdimensionelle arrays

Vigtige punkter:

  • Indlejr arrays i en vilkårlig dybde
  • Brug ?? til sikker adgang til manglende indlejrede nøgler
  • array_column() udtrækker en kolonne eller genindekserer efter en nøgle
  • usort() med en sammenligningsfunktion sorterer efter et vilkårligt felt
  • array_walk_recursive() til dybe transformationer
  • array_replace_recursive() til dyb sammenfletning
Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “Flerdimensionelle arrays” gratis?

Ja — hele teksten til “Flerdimensionelle arrays” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Flerdimensionelle arrays”?

Opret og navigér i arrays af arrays. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Flerdimensionelle arrays”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Indekserede og associative arrays
  2. Flerdimensionelle arrays
  3. Sortering og søgning i arrays
  4. Funktioner til array-transformation
← Tilbage til PHP Academy