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]; // 99Tablica 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); // 3Iterowanie 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']; // darkarray_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']; // BobSortowanie 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']; // Alicearray_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 defaultsSzybki 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 kluczausort()z komparatorem sortuje według dowolnego polaarray_walk_recursive()służy do głębokich transformacjiarray_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
- Tablice indeksowane i asocjacyjne
- Tablice wielowymiarowe
- Sortowanie i wyszukiwanie w tablicach
- Funkcje przekształcania tablic