php programowanie

PHP 4 – Tablice i ich manipulacja

W świecie programowania PHP, tablice są jednym z najbardziej fundamentalnych i potężnych typów danych, służących do przechowywania zbiorów elementów. W tym artykule, skierowanym do uczniów technikum informatycznego, zagłębimy się w tworzenie i używanie tablic oraz nauczymy się, jak efektywnie je manipulować za pomocą różnych funkcji wbudowanych w PHP.

Czy print_r to to samo co echo?

Zanim jednak przejdziemy do właściwej części artykułu, wyjaśnijmy czym jest funkcja print_r, gdyż bardzo często pojawia się pytanie, czy to nie jest to samo co echo?

Nie, print_r i echo nie są tym samym w PHP, chociaż oba służą do wyświetlania danych. Kluczowe różnice między nimi dotyczą głównie sposobu użycia i typów danych, które mogą wyświetlać:

echo:

  • Jest konstrukcją języka używaną do wyświetlania prostych ciągów znaków.
  • Może przyjmować wiele argumentów (od PHP 5.4).
  • Nie jest właściwie funkcją, co oznacza, że nie jest wymagane użycie nawiasów (choć można je użyć).
  • Szybsze dla pojedynczych ciągów znaków.
  • Nie może bezpośrednio wyświetlać zawartości tablic lub obiektów.

Przykład użycia echo:

echo "Witaj, świecie!";

print_r:

  • Jest funkcją, która wyświetla ludzko czytelną informację o zmiennej. Bardzo przydatna do debugowania.
  • Może wyświetlić złożone typy danych, takie jak tablice i obiekty, w formacie, który jest łatwy do zrozumienia.
  • Przyjmuje tylko jeden argument.
  • Może być używana do zwracania danych jako wartość zamiast ich wyświetlania, jeśli jako drugi argument przekaże się true.

Przykład użycia print_r:

$arr = ["a" => 1, "b" => 2];

print_r($arr);

/* Wyświetli:

Array (

[a] => 1

[b] => 2

) */

Podsumowując, echo jest używane głównie do wyświetlania prostych ciągów tekstowych, podczas gdy print_r jest narzędziem do debugowania, które pozwala na wyświetlanie szczegółowych informacji o złożonych typach danych, takich jak tablice i obiekty.

Teraz możemy już wrócić do właściwej części artykułu.

Czym są tablice asocjacyjne?

Tablica asocjacyjna w PHP jest typem tablicy, w której każdy element jest identyfikowany za pomocą unikalnego klucza. W przeciwieństwie do tablic indeksowanych, gdzie elementy są dostępne za pomocą indeksów liczbowych, elementy tablicy asocjacyjnej są dostępne za pomocą kluczy, które mogą być ciągami znaków lub liczbami.

Klucze w tablicy asocjacyjnej są unikalne i związane z określonymi wartościami, co umożliwia łatwe i szybkie odnajdywanie danych w tablicy. Tablice asocjacyjne są bardzo przydatne, gdy chcemy przechowywać dane, które mają naturalne nazwy lub identyfikatory, takie jak właściwości obiektów, informacje o użytkowniku, konfiguracje itp.

Przykład deklaracji tablicy asocjacyjnej:

$informacjeOUzytkowniku = array(
"imie" => "Jan",
"nazwisko" => "Kowalski",
"email" => "jan.kowalski@example.com",
"wiek" => 30
);

// Można również użyć krótszej składni:
$informacjeOUzytkowniku = [
"imie" => "Jan",
"nazwisko" => "Kowalski",
"email" => "jan.kowalski@example.com",
"wiek" => 30
];

Dostęp do elementów tablicy asocjacyjnej:

Możemy uzyskać dostęp do wartości w tablicy asocjacyjnej, odwołując się do nich za pomocą kluczy:

echo $informacjeOUzytkowniku["imie"]; // Wyświetli "Jan"
echo $informacjeOUzytkowniku["email"]; // Wyświetli "jan.kowalski@example.com"

Modyfikacja elementów tablicy:

Elementy tablicy asocjacyjnej mogą być również modyfikowane lub dodawane przez odwołanie się do nich za pomocą klucza:

$informacjeOUzytkowniku["wiek"] = 31; // Zmienia wiek Jana na 31
$informacjeOUzytkowniku["miasto"] = "Warszawa"; // Dodaje nową parę klucz-wartość do tablicy

Tablice asocjacyjne w PHP są niezwykle elastyczne i potężne, umożliwiając łatwe i intuicyjne zarządzanie złożonymi zbiorami danych.

To teraz, czym są tablice indeksowane numerycznie?

Tablice indeksowane numerycznie to podstawowy typ tablic w języku PHP, w których każdy element tablicy ma przypisany automatycznie numer indeksu. Indeksy te są liczbami całkowitymi, zaczynającymi się domyślnie od zera. Dzięki temu elementy w tablicy można łatwo identyfikować i odwoływać się do nich za pomocą tych numerów indeksów.

Charakterystyka tablic indeksowanych numerycznie:

  • Automatyczne indeksowanie: Kiedy dodajesz element do tablicy bez podawania klucza, PHP automatycznie przypisuje mu indeks. Pierwszy element, który dodasz, otrzyma indeks 0, następny 1, i tak dalej.
  • Elastyczność: Możesz dodawać, usuwać i modyfikować elementy w tablicy indeksowanej.
  • Kolejność elementów: W tablicach indeksowanych elementy są uporządkowane w kolejności, w jakiej zostały dodane, co pozwala na łatwe iterowanie po nich.

Przykład deklaracji tablicy indeksowanej numerycznie:

$owoce = array("Jabłko", "Banana", "Pomarańcza");
// Lub używając krótszej składni:
$owoce = ["Jabłko", "Banana", "Pomarańcza"];

// Dostęp do elementów tablicy:
echo $owoce[0]; // Wyświetla "Jabłko"
echo $owoce[1]; // Wyświetla "Banana"

Operacje na tablicach indeksowanych:

Dodawanie elementów: Możesz dodać nowy element na końcu tablicy za pomocą funkcji array_push() lub po prostu przypisując wartość do nowego indeksu.

array_push($owoce, "Kiwi"); // Dodaje "Kiwi" na końcu tablicy
$owoce[] = "Mango"; // Inny sposób dodawania "Mango" na końcu tablicy

Usuwanie elementów: Możesz usunąć ostatni element tablicy za pomocą array_pop() lub pierwszy element za pomocą array_shift().

array_pop($owoce); // Usuwa ostatni element tablicy
array_shift($owoce); // Usuwa pierwszy element tablicy

Sortowanie: PHP oferuje różne funkcje do sortowania tablic, np. sort() dla sortowania rosnącego.

sort($owoce); // Sortuje tablicę rosnąco

Tablice indeksowane numerycznie są niezwykle przydatne w wielu scenariuszach, od prostego przechowywania listy elementów, po bardziej złożone struktury danych wykorzystywane w aplikacjach webowych. Ich intuicyjna natura sprawia, że są one jednym z pierwszych typów danych, z którymi nowi programiści PHP powinni się zapoznać.

Tworzenie i używanie tablic

Tablice w PHP mogą przechowywać wartości różnych typów danych i są dostępne w dwóch głównych formach: indeksowane numerycznie i asocjacyjne.

Tworzenie tablicy indeksowanej numerycznie:

$owoce = array("Jabłko", "Banana", "Pomarańcza");
// Lub krótsza składnia
$owoce = ["Jabłko", "Banana", "Pomarańcza"];

echo $owoce[0]; // Wyświetla "Jabłko"

Tworzenie tablicy asocjacyjnej:

$wiek = array("Jan" => 25, "Anna" => 22, "Paweł" => 30);
// Lub krótsza składnia
$wiek = ["Jan" => 25, "Anna" => 22, "Paweł" => 30];

echo $wiek["Jan"]; // Wyświetla 25

Funkcje do manipulowania tablicami

PHP oferuje szeroki zakres funkcji do pracy z tablicami. Oto kilka przykładów najbardziej przydatnych funkcji:

sort() – Sortuje tablice

Sortowanie tablicy indeksowanej numerycznie:

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

print_r($liczby); // Wyświetla posortowaną tablicę

array_push() – Dodaje jeden lub więcej elementów na końcu tablicy

Dodawanie elementu do tablicy:

$owoce = ["Jabłko", "Banana"];
array_push($owoce, "Pomarańcza", "Kiwi");

print_r($owoce); // Dodaje "Pomarańcza" i "Kiwi" na końcu tablicy

array_merge() – Scala jedną lub więcej tablic

Łączenie dwóch tablic w jedną:

$tablica1 = ["a" => "zielony", "b" => "brązowy"];
$tablica2 = ["c" => "niebieski", "b" => "żółty"];
$wynik = array_merge($tablica1, $tablica2);

print_r($wynik);
/*
Wyświetla:
Array
(
[a] => zielony
[b] => żółty
[c] => niebieski
)
*/

Dodatkowe funkcje do manipulowania tablicami:

  • array_pop() – Usuwa ostatni element tablicy.
  • array_shift() – Usuwa pierwszy element tablicy i przesuwa wszystkie pozostałe elementy.
  • array_unshift() – Dodaje jeden lub więcej elementów na początku tablicy.
  • array_slice() – Zwraca wybraną część tablicy.

Przykład użycia:

Wyobraźmy sobie, że mamy tablicę uczniów i chcemy dodać nowego ucznia, a następnie posortować listę alfabetycznie:

$uczniowie = ["Karol", "Ewa", "Bartek"];
array_push($uczniowie, "Daria");
sort($uczniowie);

print_r($uczniowie);
/*
Wyświetla:
Array
(
[0] => Bartek
[1] => Daria
[2] => Ewa
[3] => Karol
)
*/

Tablice w PHP są niezwykle elastyczne i oferują wiele możliwości do efektywnej pracy z danymi. Znajomość różnych funkcji do manipulowania tablicami jest kluczowa dla każdego aspirującego programisty PHP, umożliwiając tworzenie bardziej złożonych i efektywnych aplikacji. Mam nadzieję, że ten artykuł dostarczył solidnych podstaw i zachęci do dalszego eksplorowania możliwości, jakie oferują tablice w PHP.