Tablice indeksowane
🎯 Po tej lekcji stworzysz tablicę, dodasz do niej elementy i odczytasz je według indeksu.
Wyobraź sobie listę zakupów wypisaną na kartce: mleko, chleb, jabłka, masło. Każda pozycja ma swój numer — pierwsza jest na miejscu pierwszym, druga na drugim. Tablica indeksowana w PHP działa dokładnie tak samo, tyle że numerowanie zaczyna się od zera, nie od jedynki.
Czym jest tablica?
Tablica (ang. array) to zmienna, która przechowuje wiele wartości naraz. Zamiast pisać:
<?php
declare(strict_types=1);
$owoc1 = 'jabłko';
$owoc2 = 'gruszka';
$owoc3 = 'śliwka';
Możesz zebrać wszystko w jednej zmiennej:
<?php
declare(strict_types=1);
$owoce = ['jabłko', 'gruszka', 'śliwka'];
Nawiasy kwadratowe [...] to nowoczesna, zalecana składnia PHP 8. Wewnątrz umieszczasz wartości oddzielone przecinkami.
Indeksy — numery elementów
Każdy element tablicy ma swój indeks (numer porządkowy). Indeksowanie zaczyna się od 0:
<?php
declare(strict_types=1);
$owoce = ['jabłko', 'gruszka', 'śliwka'];
// [0] [1] [2]
Żeby odczytać konkretny element, podajesz jego indeks w nawiasach kwadratowych:
<?php
declare(strict_types=1);
$owoce = ['jabłko', 'gruszka', 'śliwka'];
echo $owoce[0]; // wynik: jabłko
echo $owoce[1]; // wynik: gruszka
echo $owoce[2]; // wynik: śliwka
$owoce[5] w tablicy trzyelementowej), PHP zgłosi ostrzeżenie i zwróci null. Zawsze sprawdzaj, czy indeks istnieje, zanim go użyjesz.Podgląd całej tablicy — print_r
Żeby zobaczyć całą zawartość tablicy, użyj print_r:
<?php
declare(strict_types=1);
$owoce = ['jabłko', 'gruszka', 'śliwka'];
print_r($owoce);
// wynik:
// Array
// (
// [0] => jabłko
// [1] => gruszka
// [2] => śliwka
// )
print_r pokazuje indeksy i wartości w czytelnej postaci. Przydaje się bardzo podczas debugowania.
Dodawanie elementów
Żeby dodać nowy element na koniec tablicy, używasz $tablica[] = wartość:
<?php
declare(strict_types=1);
$lista = ['mleko', 'chleb'];
$lista[] = 'jabłka'; // doda jako [2]
$lista[] = 'masło'; // doda jako [3]
print_r($lista);
// wynik:
// Array
// (
// [0] => mleko
// [1] => chleb
// [2] => jabłka
// [3] => masło
// )
PHP automatycznie nadaje kolejny indeks — nie musisz o tym myśleć.
Modyfikowanie elementów
Żeby zmienić istniejący element, przypisujesz nową wartość pod jego indeks:
<?php
declare(strict_types=1);
$oceny = [3, 4, 5];
echo $oceny[0]; // wynik: 3
$oceny[0] = 5; // zmień pierwszą ocenę na 5
echo $oceny[0]; // wynik: 5
Praktyczny przykład — lista zakupów
Stwórzmy listę zakupów krok po kroku:
<?php
declare(strict_types=1);
$zakupy = ['mleko', 'chleb', 'ser'];
// Dodajemy kolejne produkty:
$zakupy[] = 'masło';
$zakupy[] = 'jajka';
// Zmieniamy jeden produkt:
$zakupy[1] = 'bułki'; // zamiast 'chleb'
print_r($zakupy);
// wynik:
// Array
// (
// [0] => mleko
// [1] => bułki
// [2] => ser
// [3] => masło
// [4] => jajka
// )
W następnej lekcji poznasz tablice asocjacyjne — zamiast numerów indeksów użyjesz własnych nazw, takich jak 'imie', 'cena' czy 'opis'. To czyni dane jeszcze bardziej czytelne.
Sprawdź się
Jaki indeks ma pierwszy element tablicy indeksowanej w PHP?
Tablice indeksowane w PHP numerują elementy od zera. Pierwszy element ma zawsze indeks 0, drugi — indeks 1, itd.
Jak dodasz nowy element 'banan' na koniec tablicy $owoce?
Składnia $tablica[] = wartość automatycznie dodaje element na koniec tablicy, przypisując mu kolejny wolny indeks numeryczny.
Co wypisze echo $kolory[2]; jeśli $kolory = ['czerwony', 'zielony', 'niebieski']?
Indeksy zaczynają się od 0: $kolory[0]='czerwony', $kolory[1]='zielony', $kolory[2]='niebieski'. Więc $kolory[2] to 'niebieski'.
Ćwiczenie
Stwórz tablicę $oceny zawierającą trzy oceny szkolne: 4, 5, 3. Następnie dodaj czwartą ocenę 5 na koniec tablicy. Zmień pierwszą ocenę (indeks 0) na 5. Wyświetl wszystkie elementy tablicy za pomocą print_r.
Pokaż rozwiązanie
<?php
declare(strict_types=1);
$oceny = [4, 5, 3];
$oceny[] = 5; // dodaj czwartą ocenę
$oceny[0] = 5; // zmień pierwszą ocenę
print_r($oceny);
// wynik:
// Array
// (
// [0] => 5
// [1] => 5
// [2] => 3
// [3] => 5
// )