Tablice PHP

W języku programistycznym, tablica to zbiór wartości przypisany do jednej zmiennej. Składa się ona z indeksów oraz wartości. Indeksowanie tablicy rozpoczyna się od wartości zero. W PHP wartości przypisywane do zmiennej tablicowej, mogą być dowolnego typu.

Tablice indeksowane

Tablica indeksowana to taka, w której indeksy są liczbami całkowitymi, rozpoczynającymi się od zera,

Przykład deklaracji tablicy:

Od wersji PHP 5.4.0 możliwy jest także zapis skrócony:

 $array = [1,true,'slowo',4.23,5];

Przykładowy odczyt elementów tablicy:

 echo $array[0]; //wyświetli 1
 echo $array[2]; //wyświetli ‘slowo’

Przypisanie wartości elementowi tablicy:

 $array[3] = 'slowo 2' // zamieni wartość 4.23 na 'slowo 2'
 $array[] = '555'; //utworzy nowy element tablicy (w indeksem 5) i przypisze mu wartość 555

Możliwe jest również utworzenie pustej tablicy lub utworzenie tablicy w momencie utworzenia pierwszego jej elementu:

 $array2 = []; //utworzy pustą tablicę
 $array3[] = ‘slowo’ //utworzy tablicę $array3 z jednym elementem o indeksie 0 i wartości 'slowo'

Tablice asocjacyjne

Tablica asocjacyjna, to taka w której indeksy mogą posiadać dowolną wartość.

Przykład:

 $array = ['owoc'=>'kiwi', 'pieczywo'=>'chleb', 'warzywo'=>'pomidor'];

Odczyt elementów tablicy:

 echo $array[‘owoc’]; //wyświetli 'kiwi’ 
 echo $array[‘warzywo’]; //wyświetli 'pomidor'

Jak pobrać ilość elementów tablicy.

Aby określi ilość elementów tablicy, można posłużyć się funkcją wbudowaną count:

 $array = [1,true,'slowo',4.23,5]; 
 echo count($array); //wyświetli wartość 5

Powyższej funkcji można użyć zarówno w przypadku tablicy indeksowanej jak i tablicy asocjacyjnej.

Pobieranie kolejnych elementów tablicy. Iteracja po tablicy.

Kolejne elementy tablicy możemy pobrać za pomocą pętli.

Iteracja po tablicy indeksowanej:

 $array = [1,true,'slowo',4.23,5];
 for ($x = 0; $x < count($array); $x++) {
     echo $array[$x];echo '<br/>';
 }

Powyższy fragment kodu wyświetli w kolejnych liniach wszystkie elementy tablicy $array;

Iteracja tablicy asocjacyjnej:

 $array = ['owoc'=>'kiwi', 'pieczywo'=>'chleb', 'warzywo'=>'pomidor'];
 foreach ($array as $key => $value) {
     echo $key . '=>' . $value;
     echo '<br/>';
 }

Powyższy fragment kodu wyświetli w kolejnych liniach elementy tablicy array w  postaci ‘Indeks’ => ‘Wartość’

Łączenie elementów tablicy w jeden ciąg znaków

Aby scalić elementy tablicy, można posłużyć się funkcją implode:

 $array = [1,true,'slowo',4.23,5];
 echo implode('|',$array); //wyświetli ciąg '1|true|slowo|4.23|5'

Pierwszy parametr funkcji implode określa jaki znak lub ciąg znaków będzie oddzielał poszczególne elementy tablicy, a drugi to tablica która ma zostać scalona. Odwrotnością funkcji implode() jest funkcja eksplode();  

Przydatne funkcje operujące na tablicach:

array_push() i array_pop()

  • array_push() — Dodaje jeden lub więcej elementów na koniec tablicy.
  • array_pop() — Usuwa ostatni element z tablicy i zwraca jego wartość.

Przykład użycia:

 $owoce = ["jabłko", "banan"];
 array_push($owoce, "gruszka", "pomarańcza");
 print_r($owoce);// Wyświetli: ["jabłko", "banan", "gruszka", "pomarańcza"]
 $ostatni = array_pop($owoce);
 echo $ostatni; // Wyświetli: pomarańcza

array_shift() i array_unshift()

  • array_shift() — Usuwa pierwszy element tablicy i zwraca jego wartość.
  • array_unshift() — Dodaje jeden lub więcej elementów na początek tablicy.

Przykład użycia:

 $owoce = ["jabłko", "banan"];
 array_unshift($owoce, "truskawka");
 print_r($owoce);// Wyświetli: ["truskawka", "jabłko", "banan"]
 $pierwszy = array_shift($owoce);
 echo $pierwszy; // Wyświetli: truskawka

array_merge()

Opis: Łączy dwie lub więcej tablic w jedną. Jeśli klucze są takie same, wartości z późniejszych tablic nadpisują wcześniejsze.

Przykład użycia:

 $fruits1 = ["jabłko", "banan"];
 $fruits2 = ["gruszka", "pomarańcza"];
 $merged = array_merge($fruits1, $fruits2);
 print_r($merged);// Wyświetli: ["jabłko", "banan", "gruszka", "pomarańcza"]

array_keys() i array_values()

  • array_keys() — Zwraca wszystkie klucze tablicy.
  • array_values() — Zwraca wszystkie wartości tablicy.

Przykład użycia:

 $osoba = ["imie" => "Jan", "nazwisko" => "Kowalski", "wiek" => 30];
 print_r(array_keys($osoba)); // Wyświetli: ["imie", "nazwisko", "wiek"]
 print_r(array_values($osoba)); // Wyświetli: ["Jan", "Kowalski", 30]

in_array() i array_search()

  • in_array() — Sprawdza, czy wartość istnieje w tablicy.
  • array_search() — Zwraca klucz pierwszego znalezionego wystąpienia wartości lub false, jeśli nie istnieje.

Przykład użycia:

 $owoce = ["jabłko", "banan", "gruszka"];
 echo in_array("banan", $owoce) ? "Jest!" : "Brak"; // Wyświetli: Jest!echo   
 array_search("gruszka", $owoce); // Wyświetli: 2

array_slice()

Zwraca fragment tablicy od wskazanego indeksu o określonej długości.

Przykład użycia:

 $owoce = ["jabłko", "banan", "gruszka", "pomarańcza"];
 print_r(array_slice($owoce, 1, 2)); // Wyświetli: ["banan", "gruszka"]

array_map()

Stosuje funkcję do każdego elementu tablicy i zwraca nową tablicę z wynikami.

Przykład użycia:

 $liczby = [1, 2, 3, 4];
 $kwadraty = array_map(fn($x) => $x * $x, $liczby);
 print_r($kwadraty); // Wyświetli: [1, 4, 9, 16]

array_filter()

Opis: Filtruje tablicę przy użyciu funkcji zwracającej wartość logiczną.

Przykład użycia:

 $liczby = [1, 2, 3, 4, 5, 6];
 $parzyste = array_filter($liczby, fn($x) => $x % 2 === 0);
 print_r($parzyste); // Wyświetli: [2, 4, 6]

array_reduce()

Opis: Redukuje tablicę do pojedynczej wartości przy użyciu funkcji akumulacyjnej.

Przykład użycia:

 $liczby = [1, 2, 3, 4];
 $suma = array_reduce($liczby, fn($carry, $item) => $carry + $item, 0);
 echo $suma; // Wyświetli: 10

Funkcje sortujące sort(), rsort(), asort(), ksort()

  • sort() — Sortuje tablicę rosnąco, przekształcając klucze na numeryczne.
  • rsort() — Sortuje malejąco.
  • asort() — Sortuje rosnąco, zachowując klucze.
  • ksort() — Sortuje tablicę według kluczy.

Przykład użycia:

 $owoce = ["jabłko", "banan", "gruszka"];
 sort($owoce);print_r($owoce); // Wyświetli: ["banan", "gruszka", "jabłko"]

array_unique()

Opis: Usuwa duplikaty wartości w tablicy.

Przykład użycia:

 $liczby = [1, 2, 2, 3, 4, 4, 5];
 print_r(array_unique($liczby)); // Wyświetli: [1, 2, 3, 4, 5]