Lekcja 4 – Tablice w PHP

Czym są tablice?

Tablice (arrays) to struktury danych, które pozwalają przechowywać wiele wartości pod jedną zmienną. Każdy element tablicy ma przypisany unikalny indeks, który umożliwia dostęp do danego elementu. PHP obsługuje trzy główne typy tablic:

  • Tablice indeksowane numerycznie – elementy mają indeksy liczbowe (zaczynające się od 0),
  • Tablice asocjacyjne – indeksami są klucze tekstowe,
  • Tablice wielowymiarowe – tablice, które zawierają inne tablice jako swoje elementy.

Tablice indeksowane numerycznie

Tablice indeksowane numerycznie to najprostszy rodzaj tablic. Elementy są automatycznie indeksowane liczbami całkowitymi, zaczynając od 0.

Przykład:

<?php
  $owoce = array("jabłko", "banan", "gruszka");

  echo $owoce[0]; // Wyświetli: jabłko
  echo $owoce[1]; // Wyświetli: banan
  echo $owoce[2]; // Wyświetli: gruszka
?>

Możemy dodać nowy element do tablicy w dowolnym momencie, przypisując wartość do nowego indeksu:

<?php
  $owoce[] = "pomarańcza"; // Dodaje nowy element na końcu tablicy
?>

Tablice indeksowane można także tworzyć, przypisując wartości do konkretnych indeksów:

<?php
  $liczby[0] = 10;
  $liczby[1] = 20;
  $liczby[2] = 30;

  echo $liczby[1]; // Wyświetli: 20
?>

Iteracja po tablicach indeksowanych

Aby przejść przez wszystkie elementy tablicy, możemy użyć pętli foreach lub pętli for.

Przykład z foreach:

<?php
  $owoce = array("jabłko", "banan", "gruszka");

  foreach ($owoce as $owoc) {
    echo "Lubię $owoc<br>";
  }
?>

Przykład z for:

<?php
  $owoce = array("jabłko", "banan", "gruszka");
  $długość = count($owoce); // Funkcja count() zwraca liczbę elementów w tablicy

  for ($i = 0; $i < $długość; $i++) {
    echo "Lubię " . $owoce[$i] . "<br>";
  }
?>

Tablice asocjacyjne

Tablice asocjacyjne różnią się od indeksowanych tym, że zamiast liczb, jako klucze wykorzystują ciągi znaków. Pozwala to na bardziej intuicyjne przypisywanie wartości.

Przykład:

<?php
  $dane = array(
    "imie" => "Jan",
    "nazwisko" => "Kowalski",
    "wiek" => 30
  );

  echo $dane["imie"]; // Wyświetli: Jan
  echo $dane["nazwisko"]; // Wyświetli: Kowalski
?>

Dodawanie nowych elementów do tablicy asocjacyjnej wygląda podobnie jak w tablicach indeksowanych:

<?php
  $dane["miasto"] = "Warszawa";
?>

Iteracja po tablicach asocjacyjnych

Podobnie jak w przypadku tablic indeksowanych, możemy użyć pętli foreach do iteracji po elementach tablicy asocjacyjnej, jednak w tym przypadku uzyskujemy zarówno klucz, jak i wartość.

Przykład:

<?php
  $dane = array(
    "imie" => "Jan",
    "nazwisko" => "Kowalski",
    "wiek" => 30
  );

  foreach ($dane as $klucz => $wartość) {
    echo "$klucz: $wartość<br>";
  }
?>

Wynik:

imie: Jan
nazwisko: Kowalski
wiek: 30

Tablice wielowymiarowe

Tablice wielowymiarowe to tablice, które zawierają inne tablice jako swoje elementy. Są one używane do przechowywania bardziej złożonych struktur danych.

Przykład tablicy dwuwymiarowej:

<?php
  $studenci = array(
    array("Jan", "Kowalski", 22),
    array("Anna", "Nowak", 21),
    array("Piotr", "Wiśniewski", 23)
  );

  echo $studenci[0][0]; // Wyświetli: Jan
  echo $studenci[1][1]; // Wyświetli: Nowak
  echo $studenci[2][2]; // Wyświetli: 23
?>

Każdy element głównej tablicy $studenci jest inną tablicą, co pozwala na tworzenie bardziej złożonych struktur danych. Aby przejść przez wszystkie elementy tablicy wielowymiarowej, możemy zagnieździć pętle.

Przykład iteracji po tablicy dwuwymiarowej:

<?php
  $studenci = array(
    array("Jan", "Kowalski", 22),
    array("Anna", "Nowak", 21),
    array("Piotr", "Wiśniewski", 23)
  );

  foreach ($studenci as $student) {
    foreach ($student as $dane) {
      echo $dane . " ";
    }
    echo "<br>";
  }
?>

Wynik:

Jan Kowalski 22 
Anna Nowak 21 
Piotr Wiśniewski 23 

Przydatne funkcje do pracy z tablicami

PHP oferuje wiele funkcji, które ułatwiają pracę z tablicami. Oto kilka z najważniejszych:

count(): Zwraca liczbę elementów w tablicy.

<?php
  $owoce = array("jabłko", "banan", "gruszka");
  echo count($owoce); // Wyświetli: 3
?>

array_merge(): Łączy dwie lub więcej tablic w jedną.

<?php
  $tablica1 = array("jabłko", "banan");
  $tablica2 = array("gruszka", "pomarańcza");
  $połączone = array_merge($tablica1, $tablica2);
  print_r($połączone);
?>

Wynik:

Array
(
    [0] => jabłko
    [1] => banan
    [2] => gruszka
    [3] => pomarańcza
)

in_array(): Sprawdza, czy wartość znajduje się w tablicy.

<?php
  $owoce = array("jabłko", "banan", "gruszka");
  if (in_array("jabłko", $owoce)) {
    echo "Jabłko jest w tablicy!";
  }
?>

array_keys(): Zwraca wszystkie klucze z tablicy asocjacyjnej.

<?php
  $dane = array("imie" => "Jan", "nazwisko" => "Kowalski", "wiek" => 30);
  $klucze = array_keys($dane);
  print_r($klucze);
?>

Wynik:

Array
(
    [0] => imie
    [1] => nazwisko
    [2] => wiek
)

W tej lekcji poznaliśmy różne rodzaje tablic, ich zastosowania oraz podstawowe operacje na tablicach w PHP. Tablice są fundamentalnym elementem programowania w PHP, a ich zrozumienie pozwoli Ci na efektywniejszą pracę z danymi.

Gratulacje! Ukończyłeś lekcję 4.
Przejdź teraz do lekcji 5 >> Dodatkowe podstawy funkcji w PHP


Spis Treści - darmowy kurs PHP

Wprowadzenie: Instalacja środowiska PHP
Lekcja 1: Podstawy składni PHP
Lekcja 2: Funkcje i instrukcje warunkowe w PHP
Lekcja 3: Pętle w PHP
Lekcja 4: Tablice w PHP
Lekcja 5: Dodatkowe podstawy funkcji w PHP
Lekcja 6: Praca z formularzami HTML w PHP
Lekcja 7: Obsługa plików w PHP
Lekcja 8: Sesje i ciasteczka w PHP
Lekcja 9: Podstawy operacji na bazach danych MySQL z PHP
Lekcja 10: Prepared Statements w PHP i bezpieczeństwo aplikacji
Lekcja 11: Zarządzanie użytkownikami – rejestracja, logowanie i autoryzacja w PHP
Lekcja 12: Wzorce projektowe w PHP – wprowadzenie do wzorca MVC
Lekcja 13: Zaawansowane techniki pracy z bazami danych w PHP
Lekcja 14: Testowanie jednostkowe w PHP z PHPUnit
Lekcja 15: Tworzenie i korzystanie z API RESTful w PHP
Lekcja 16: Obsługa plików JSON i XML w PHP

Dodatki
- Spis najważniejszych funkcji PHP