Tworzenie tablic w PHP

Jeśli dopiero zaczynasz swoją przygodę z PHP, to prawdopodobnie szybko natkniesz się na pojęcie tablicy. I dobrze! Bo tablice to jedna z najważniejszych struktur danych w tym języku. Bez nich ciężko byłoby przechowywać większe ilości informacji czy przekazywać dane między funkcjami.

W tym artykule pokażę Ci krok po kroku, jak tworzyć, modyfikować i wykorzystywać tablice w PHP. Zrozumiesz, czym się różnią tablice indeksowane od asocjacyjnych, nauczysz się iterować po elementach i poznasz kilka praktycznych sztuczek, które przyspieszą Twoją pracę.

Co to jest tablica w PHP?

Tablica w PHP to po prostu zbiór danych przechowywanych pod jednym identyfikatorem (czyli nazwą zmiennej). Zamiast tworzyć osobne zmienne dla każdego elementu, możesz umieścić wszystko w jednej strukturze.

Dla przykładu:

$imiona = ["Kasia", "Tomek", "Basia"];

Tutaj mamy tablicę, w której przechowujemy trzy imiona. Zamiast pisać $imie1, $imie2, $imie3, mamy jedną zmienną $imiona.

Każdy element w tablicy ma swój indeks, czyli numer lub klucz, za pomocą którego możesz go odczytać.

Tablice indeksowane

Zacznijmy od najprostszych – tablic indeksowanych.

To takie tablice, gdzie kluczem każdego elementu jest liczba całkowita, zaczynająca się od zera.

Przykład:

$owoce = ["jabłko", "banan", "truskawka"];

W praktyce:

  • $owoce[0] zwróci "jabłko"
  • $owoce[1] zwróci "banan"
  • $owoce[2] zwróci "truskawka"

Możesz też tworzyć tablice „na piechotę”:

$owoce = array();
$owoce[0] = "jabłko";
$owoce[1] = "banan";
$owoce[2] = "truskawka";

Lub po prostu:

$owoce = array("jabłko", "banan", "truskawka");

Od PHP 5.4 możesz używać krótszej składni z nawiasami kwadratowymi [], i to jest dzisiaj najczęściej stosowany zapis.

Tablice asocjacyjne

Czasem nie chcesz, żeby elementy były indeksowane liczbami. Chcesz używać słownych kluczy, np. „imię”, „wiek”, „miasto”. Wtedy tworzysz tablicę asocjacyjną.

Przykład:

$uzytkownik = [
    "imie" => "Jan",
    "nazwisko" => "Kowalski",
    "wiek" => 28
];

Teraz zamiast pisać $uzytkownik[0], możesz odwołać się po nazwie klucza:

echo $uzytkownik["imie"]; // Jan

Tablice asocjacyjne są bardzo przydatne np. do przechowywania danych formularzy, konfiguracji aplikacji czy wyników zapytań z bazy danych.

Tablice wielowymiarowe

Co jeśli potrzebujesz przechować bardziej złożone dane, np. listę użytkowników, gdzie każdy ma imię, wiek i miasto?
Wtedy używasz tablic wielowymiarowych – czyli tablic w tablicach.

Przykład:

$uzytkownicy = [
    [
        "imie" => "Kasia",
        "wiek" => 25,
        "miasto" => "Warszawa"
    ],
    [
        "imie" => "Tomek",
        "wiek" => 30,
        "miasto" => "Kraków"
    ],
    [
        "imie" => "Basia",
        "wiek" => 22,
        "miasto" => "Gdańsk"
    ]
];

Dzięki temu możesz łatwo dostać się do konkretnego elementu:

echo $uzytkownicy[1]["miasto"]; // Kraków

Iterowanie po tablicach

Kiedy masz już dane w tablicy, chcesz po nich przejść – np. wyświetlić wszystkie elementy.
Do tego używamy pętli.

Pętla for

Działa świetnie z tablicami indeksowanymi:

$owoce = ["jabłko", "banan", "truskawka"];

for ($i = 0; $i < count($owoce); $i++) {
    echo $owoce[$i] . "<br>";
}

Ale to rozwiązanie jest mało elastyczne. Lepsze będzie…

Pętla foreach

Najczęściej używana pętla przy pracy z tablicami w PHP.

Działa prosto i jest czytelna:

$owoce = ["jabłko", "banan", "truskawka"];

foreach ($owoce as $owoc) {
    echo $owoc . "<br>";
}

Jeśli chcesz również dostać klucz, użyj takiej składni:

foreach ($owoce as $indeks => $owoc) {
    echo "Indeks $indeks: $owoc <br>";
}

Działa też dla tablic asocjacyjnych:

$uzytkownik = [
    "imie" => "Jan",
    "nazwisko" => "Kowalski",
    "wiek" => 28
];

foreach ($uzytkownik as $klucz => $wartosc) {
    echo "$klucz: $wartosc <br>";
}

Najczęściej używane funkcje do pracy z tablicami

PHP oferuje dziesiątki funkcji do obsługi tablic. Oto kilka, które warto znać:

FunkcjaOpis
count($tablica)Zwraca liczbę elementów w tablicy
array_push($tablica, $element)Dodaje element na koniec tablicy
array_pop($tablica)Usuwa ostatni element
array_shift($tablica)Usuwa pierwszy element
array_unshift($tablica, $element)Dodaje element na początek
in_array($wartosc, $tablica)Sprawdza, czy wartość istnieje w tablicy
array_keys($tablica)Zwraca wszystkie klucze
array_values($tablica)Zwraca wszystkie wartości
array_merge($tablica1, $tablica2)Łączy dwie tablice
sort($tablica)Sortuje rosnąco (dla tablic indeksowanych)
ksort($tablica)Sortuje po kluczach (dla asocjacyjnych)

Przykład użycia:

$liczby = [3, 1, 5, 2, 4];
sort($liczby);

print_r($liczby);

Wynik:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Jak dodać i usunąć element z tablicy

Dodawanie elementu:

$owoce[] = "gruszka";

To prosty sposób na dopisanie czegoś na końcu tablicy.

Usuwanie elementu:

unset($owoce[1]);

Uwaga – unset() usuwa element, ale nie reorganizuje indeksów.
Jeśli chcesz, by indeksy się „zresetowały”, użyj:

$owoce = array_values($owoce);

Praktyczny przykład – lista użytkowników

Załóżmy, że chcesz stworzyć prostą listę użytkowników i wyświetlić ją na stronie.

Kod:

<?php
$uzytkownicy = [
    ["imie" => "Kasia", "wiek" => 25, "miasto" => "Warszawa"],
    ["imie" => "Tomek", "wiek" => 30, "miasto" => "Kraków"],
    ["imie" => "Basia", "wiek" => 22, "miasto" => "Gdańsk"]
];
?>

<table border="1" cellpadding="8">
    <tr>
        <th>Imię</th>
        <th>Wiek</th>
        <th>Miasto</th>
    </tr>

    <?php foreach ($uzytkownicy as $user): ?>
        <tr>
            <td><?= $user["imie"] ?></td>
            <td><?= $user["wiek"] ?></td>
            <td><?= $user["miasto"] ?></td>
        </tr>
    <?php endforeach; ?>
</table>

To prosty przykład, ale pokazuje, jak praktyczne są tablice w PHP – możesz dzięki nim generować dynamiczne tabele, listy produktów, wpisy blogowe i mnóstwo innych rzeczy.

Tablice i funkcje – przekazywanie danych

Tablice świetnie współpracują z funkcjami. Możesz je przekazywać jako argumenty, zwracać jako wyniki albo przetwarzać wewnątrz funkcji.

Przykład:

function suma($liczby) {
    return array_sum($liczby);
}

$moje_liczby = [10, 20, 30, 40];
echo suma($moje_liczby); // 100

array_sum() to wbudowana funkcja, która sumuje wszystkie liczby w tablicy.

Zaawansowane operacje na tablicach

Jeśli chcesz wejść na wyższy poziom, oto kilka zaawansowanych (ale bardzo przydatnych) funkcji:

array_map()

Przekształca każdy element tablicy według podanej funkcji.

$liczby = [1, 2, 3, 4, 5];
$kwadraty = array_map(fn($x) => $x * $x, $liczby);

print_r($kwadraty);

Wynik:

Array ( [0] => 1 [1] => 4 [2] => 9 [3] => 16 [4] => 25 )

array_filter()

Filtruje tablicę – zostawia tylko elementy spełniające określony warunek.

$liczby = [1, 2, 3, 4, 5, 6];
$parzyste = array_filter($liczby, fn($x) => $x % 2 == 0);

print_r($parzyste);

Wynik:

Array ( [1] => 2 [3] => 4 [5] => 6 )

array_reduce()

Sprowadza tablicę do jednej wartości (np. sumy, średniej itp.).

$liczby = [2, 3, 4];
$iloczyn = array_reduce($liczby, fn($carry, $item) => $carry * $item, 1);

echo $iloczyn; // 24

Ciekawostki o tablicach w PHP

  • Tablice w PHP mogą zawierać różne typy danych jednocześnie – liczby, napisy, obiekty, a nawet inne tablice.
  • Klucze w tablicach asocjacyjnych są automatycznie konwertowane do łańcuchów znaków.
  • Indeksy liczbowych tablic nie muszą być ciągłe – PHP sam zarządza ich przypisaniem.
  • Tablice w PHP są kopiowane przez wartość, ale od wersji PHP 7 działa tzw. copy-on-write, co oznacza, że dane są fizycznie kopiowane dopiero wtedy, gdy je modyfikujesz.

Tablice w PHP to potężne narzędzie, które musisz dobrze poznać, jeśli chcesz pisać efektywny kod.
Pozwalają one na łatwe przechowywanie i przetwarzanie danych, są wszechstronne, elastyczne i co najważniejsze proste w użyciu.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl