Logo

PHP - Tablice

Opis: Zostaną omówione tablice w języku PHP, w tym tablice indeksowane i asocjacyjne oraz podstawowe funkcje tablicowe, takie jak count, array_push, array_pop, implode i explode, umożliwiające przechowywanie i efektywne przetwarzanie zbiorów danych.

Tablice w PHP

W PHP tablice są strukturą danych służącą do przechowywania wielu wartości w jednej zmiennej. W przeciwieństwie do wielu innych języków, tablice w PHP są bardzo elastyczne - mogą przechowywać różne typy danych oraz działać zarówno jako klasyczne listy, jak i mapy (klucz -> wartość).

Wyróżnia się dwa podstawowe typy tablic:

  • tablice indeksowane - gdzie kluczami są liczby całkowite (indeksy),

  • tablice asocjacyjne - gdzie kluczami są nazwy (łańcuchy znaków).

1. Tablice indeksowane

Przykład prostej tablicy:

<?php
$owoce = ["jabłko", "banan", "gruszka"];

echo $owoce[0]; // jabłko
echo $owoce[1]; // banan
?>

Wyjaśnienie:

  • Tablica $owoce przechowuje listę wartości.

  • Indeksy są nadawane automatycznie i zaczynają się od 0.

  • Dostęp do elementów odbywa się przez indeks w nawiasach kwadratowych.

  • $owoce[0] oznacza pierwszy element tablicy.

Przykład z pętlą i listą HTML:

<?php
$kolory = ["czerwony", "zielony", "niebieski"];

echo "<ul>";

for ($i = 0; $i < count($kolory); $i++) {
    echo "<li>" . $kolory[$i] . "</li>";
}

echo "</ul>";
?>

Wyjaśnienie:

  • Użyta została pętla for, ponieważ pracujemy na indeksach liczbowych.

  • Funkcja count($kolory) zwraca liczbę elementów w tablicy.

  • Każdy element tablicy jest wyświetlany jako element listy HTML (<li>).

  • Całość jest opakowana w listę nieuporządkowaną <ul>.

2. Tablice asocjacyjne

Przykład prostej tablicy:

<?php
$osoba = [
    "imie" => "Jan",
    "nazwisko" => "Kowalski",
    "wiek" => 25
];

echo $osoba["imie"]; // Jan
echo $osoba["wiek"]; // 25
?>

Wyjaśnienie:

  • Tablica $osoba przechowuje dane w postaci par klucz -> wartość.

  • Klucze są tekstowe (np. "imie", "wiek").

  • Dostęp do danych odbywa się przez nazwę klucza, a nie indeks liczbowy.

  • Tego typu tablice są szczególnie przydatne do reprezentowania obiektów (np. użytkownika).

Przykład z pętlą i listą HTML:

<?php
$uczen = [
    "imie" => "Anna",
    "nazwisko" => "Nowak",
    "klasa" => "3A"
];

echo "<ul>";

foreach ($uczen as $klucz => $wartosc) {
    echo "<li>" . $klucz . ": " . $wartosc . "</li>";
}

echo "</ul>";
?>

Wyjaśnienie:

  • Użyta została pętla foreach, która najlepiej nadaje się do tablic asocjacyjnych.

  • $klucz przechowuje nazwę pola (np. imie), a $wartosc jego wartość.

  • Każdy element jest wyświetlany w formacie: klucz: wartość.

  • Dane są prezentowane jako lista HTML (<ul> i <li>).

Podsumowanie różnicy

Cecha

Tablica indeksowana

Tablica asocjacyjna

Klucze

liczby (0, 1, 2...)

tekst (np. "imie")

Dostęp do elementu

$tablica[0]

$tablica["klucz"]

Zastosowanie

listy danych

dane opisowe / struktury

Funkcje tablic w PHP

PHP oferuje wiele wbudowanych funkcji do operowania na tablicach. Umożliwiają one m.in. zliczanie elementów, dodawanie i usuwanie danych oraz konwersję między tablicą a łańcuchem znaków. Dzięki nim można w prosty sposób przetwarzać i manipulować danymi.

1. count() - liczba elementów w tablicy

Przykład:

<?php
$owoce = ["jabłko", "banan", "gruszka"];

echo count($owoce); // 3
?>

Wyjaśnienie:

  • Funkcja count() zwraca liczbę elementów w tablicy.

  • W tym przypadku tablica ma 3 elementy, więc wynik to 3.

2. array_push() - dodawanie elementu na koniec tablicy

Przykład:

<?php
$owoce = ["jabłko", "banan"];

array_push($owoce, "gruszka");

print_r($owoce);
?>

Wyjaśnienie:

  • Funkcja array_push() dodaje jeden lub więcej elementów na koniec tablicy.

  • Po wykonaniu tablica zawiera: ["jabłko", "banan", "gruszka"].

3. array_pop() - usuwanie ostatniego elementu tablicy

Przykład:

<?php
$owoce = ["jabłko", "banan", "gruszka"];

array_pop($owoce);

print_r($owoce);
?>

Wyjaśnienie:

  • Funkcja array_pop() usuwa ostatni element tablicy.

  • W tym przypadku usunięta zostaje "gruszka".

  • Tablica po operacji: ["jabłko", "banan"].

4. implode() - zamiana tablicy na tekst

Przykład:

<?php
$owoce = ["jabłko", "banan", "gruszka"];

$tekst = implode(", ", $owoce);

echo $tekst; // jabłko, banan, gruszka
?>

Wyjaśnienie:

  • Funkcja implode() łączy elementy tablicy w jeden łańcuch znaków.

  • Pierwszy argument to separator (np. przecinek i spacja).

  • Wynik to jeden tekst z połączonych elementów.

5. explode() - zamiana tekstu na tablicę

Przykład:

<?php
$tekst = "jabłko,banan,gruszka";

$owoce = explode(",", $tekst);

print_r($owoce);
?>

Wyjaśnienie:

  • Funkcja explode() dzieli tekst na części i tworzy z nich tablicę.

  • Pierwszy argument to separator (tu: przecinek).

  • Wynik to tablica: ["jabłko", "banan", "gruszka"].

Podsumowanie

Funkcja

Działanie

count()

liczy elementy tablicy

array_push()

dodaje element na koniec

array_pop()

usuwa ostatni element

implode()

zamienia tablicę na tekst

explode()

zamienia tekst na tablicę

Zadania - Tablice w PHP

1. Tablica indeksowana

Utwórz tablicę indeksowaną zawierającą 5 nazw miast.
Wyświetl wszystkie elementy tablicy jako listę HTML (<ul>), używając pętli for.

Oczekiwany rezultat:

Na stronie wyświetla się lista punktowana z 5 miastami, np.:

<ul>
  <li>Szczecin</li>
  <li>Warszawa</li>
  <li>Kraków</li>
  <li>Gdańsk</li>
  <li>Poznań</li>
</ul>

2. Zliczanie elementów

Utwórz tablicę z dowolnymi liczbami (min. 4 elementy).
Wyświetl:

  • wszystkie elementy tablicy,

  • liczbę elementów tablicy.

Oczekiwany rezultat:

Wyświetlone liczby oraz informacja o ich ilości, np.:

1 5 7 10
Liczba elementów: 4

3. Dodawanie i usuwanie elementów

Utwórz tablicę z 3 produktami. Następnie:

  • dodaj element na koniec,

  • usuń ostatni element,

  • wyświetl tablicę po każdej operacji.

Oczekiwany rezultat:

Widoczne trzy stany tablicy, np.:

Początkowa: jabłko, banan, mleko
Po dodaniu: jabłko, banan, mleko, chleb
Po usunięciu: jabłko, banan, mleko

4. Tablica asocjacyjna

Utwórz tablicę asocjacyjną użytkownika (imię, nazwisko, wiek, miasto).
Wyświetl dane jako listę HTML (foreach).

Oczekiwany rezultat:

<ul>
  <li>imie: Jan</li>
  <li>nazwisko: Kowalski</li>
  <li>wiek: 25</li>
  <li>miasto: Szczecin</li>
</ul>

5. Filtrowanie danych

Utwórz tablicę asocjacyjną (produkt -> cena).
Wyświetl tylko produkty droższe niż 50 zł.

Oczekiwany rezultat:

Wyświetlone tylko wybrane elementy, np.:

Laptop - 3000
Telefon - 1200

6. Implode

Utwórz tablicę z 4 imionami i połącz je w jeden tekst oddzielony przecinkami.

Oczekiwany rezultat:

Jan, Anna, Piotr, Maria

7. Explode

Podziel tekst:

$tekst = "PHP,JavaScript,Python,Java";

na tablicę i wyświetl jako listę HTML.

Oczekiwany rezultat:

<ul>
  <li>PHP</li>
  <li>JavaScript</li>
  <li>Python</li>
  <li>Java</li>
</ul>

8. Mieszane operacje

Utwórz tablicę liczb.
Wykonaj:

  • dodanie elementu,

  • usunięcie elementu,

  • zliczenie elementów,

  • wyświetlenie listy HTML.

Oczekiwany rezultat:

  • poprawnie zmodyfikowana tablica,

  • poprawna liczba elementów,

  • lista HTML z aktualnymi wartościami.

<ul>
  <li>2</li>
  <li>4</li>
  <li>6</li>
</ul>
Liczba elementów: 3

9. Dane produktu

Utwórz tablicę asocjacyjną (nazwa, cena, ilość).
Wyświetl dane oraz oblicz wartość (cena * ilość).

Oczekiwany rezultat:

Produkt: Laptop
Cena: 3000
Ilość: 2
Wartość: 6000