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]