0Pricing
PHP Academy · Lekcja

Tablice wielowymiarowe

Budowanie tablic tablic i poruszanie się po nich.

Tablice wielowymiarowe to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Tablice wielowymiarowe

Tablica wielowymiarowa to tablica, której każdy element jest również tablicą. Jest często używana do przechowywania uporządkowanych danych, takich jak wyniki zapytań do bazy danych lub drzewa konfiguracji.

Tworzenie tablic dwuwymiarowych

Utwórz tablicę dwuwymiarową i uzyskaj dostęp do jej elementów:

<?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

Tablica tablic asocjacyjnych

Zbiory wyników z bazy danych często są tablicami tablic asocjacyjnych:

<?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

Iterowanie po tablicach dwuwymiarowych

Użyj zagnieżdżonych pętli foreach, aby iterować po wszystkich wierszach i kolumnach:

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

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

Bezpieczny dostęp do zagnieżdżonych kluczy

Użyj operatora koalescencji wartości null, aby bezpiecznie uzyskiwać dostęp do zagnieżdżonych kluczy, które mogą nie istnieć:

<?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)

Dodawanie elementów do zagnieżdżonych tablic

Dodawaj elementy głęboko zagnieżdżone w tablicy wielowymiarowej:

<?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() wyodrębnia pojedynczą kolumnę z tablicy dwuwymiarowej:

<?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

Sortowanie tablicy dwuwymiarowej

Sortuj wiersze według wartości pola za pomocą 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
}

Operacje rekurencyjne z array_walk_recursive

Zastosuj funkcję zwrotną do każdego elementu końcowego zagnieżdżonej tablicy za pomocą 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 i tablice wielowymiarowe

Tablice wielowymiarowe PHP można bezpośrednio odwzorować na obiekty i tablice JSON:

<?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 a array_replace dla tablic zagnieżdżonych

array_merge nie działa rekurencyjnie; użyj array_replace_recursive, aby prawidłowo scalać tablice zagnieżdżone:

<?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

Szybki test

Jaka funkcja wyodrębnia pojedynczą kolumnę wartości z tablicy dwuwymiarowej?

Podsumowanie: tablice wielowymiarowe

Najważniejsze informacje:

  • Tablice można zagnieżdżać na dowolnej głębokości
  • Użyj ??, aby bezpiecznie uzyskiwać dostęp do brakujących zagnieżdżonych kluczy
  • array_column() wyodrębnia kolumnę lub ponownie indeksuje tablicę według klucza
  • usort() z komparatorem sortuje według dowolnego pola
  • array_walk_recursive() służy do głębokich transformacji
  • array_replace_recursive() służy do głębokiego scalania

Często zadawane pytania

Czy lekcja „Tablice wielowymiarowe” jest bezpłatna?

Tak — pełny tekst „Tablice wielowymiarowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tablice wielowymiarowe”?

Budowanie tablic tablic i poruszanie się po nich. Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Tablice wielowymiarowe”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tablice indeksowane i asocjacyjne
  2. Tablice wielowymiarowe
  3. Sortowanie i wyszukiwanie w tablicach
  4. Funkcje przekształcania tablic
← Powrót do PHP Academy