Tablice w PHP
Tablice służą w językach programowania do przechowywania uporządkowanych zbiorów elementów (zmiennych).
Do tej pory mieliśmy do czynienia ze zmiennymi, w których można przechowywać różne wartości. W tablicach możemy przechowywać wiele różnych wartości i odwoływać się do nich po numerze komórki w tablicy (indeksie, a tablice nazywamy tablicami indeksowanymi numerycznie) lub po nazwach tych komórek (tak zwane tablice asocjacyjne).
Tablice mogą mieć jeden wymiar, mogą mieć tych wymiarów więcej.
W PHP mamy do wyboru wiele funkcji, które operują na danych w tablicach, w tym sortują, porządkują, przeglądają itp.
Spis treści
Tablica prosta
Tablice indeksowane numerycznie to proste tablice w PHP, chyba najczęściej wykorzystywane.
Pola tej tablicy to tak zwane komórki, a identyfikator tej komórki to tak zwany indeks. Każda komórka może zawierać inną wartość. Aby odczytać daną wartość z tablicy trzeba się odwołać do tablicy poprzez indeks (numer) odpowiedniej komórki.
Uwaga! Indeks tablicy jest liczony od zera.
Poniższy rysunek przedstawia przykład tablicy liczbowej oraz tekstowej.
Aby utworzyć tablicę prostą używamy składni
$tablica=array(wartość1, wartość2, ... wartośćN);
Przykład 1
Utworzymy tablice z pierwszej ilustracji:
<?php $tablica1=array(55,3234,323,2,-223,5);
$tablica2=array("styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień",);
var_dump($tablica1);
echo '<br>';
var_dump($tablica2); ?>
Za pomocą funkcji var_dump możemy wyświetlić strukturę tablicy i jej zawartość
Wyświetlanie wartości tablicy indeksowanej
Aby wyświetlić daną wartość w wybranej komórce stosujemy notację z użyciem nawiasów kwadratowych, w których podajemy numer indeksu.
Aby więc wyświetlić zawartość komórki o indeksie 2, należy zastosować notację: $tablica[2].
Aby wyświetlić wszystkie wartości tablicy użyjemy pętli for. Oto przykład.
Przykład 2
<?php $tablica = array(10,9,8,7,6,5,4,3,2,1,0,-1,-2);
for ($index = 0; $index < 13; $index++){
echo $tablica[$index].'<br>';
}
echo '<br>';
for ($index = 0; $index < count($tablica); $index++){
echo $tablica[$index].'<br>';
} ?>
Użyliśmy dwukrotnie pętli for. Pierwszy raz z jawnie zapisaną górną granicą indeksu (tablica ma 12 elementów).
Gdy jednak nie wiemy ile elementów ma tablica, warto użyć funkcji count, która zwraca liczbę tychże elementów.
Efekt jest ten sam.
Pytania
Jak zmienić wartość w pierwszym i trzecim polu tablicy $tablica1 z powyższego przykładu na 1 i -1?
$tablica[0]=1;
$tablica[2]=-1;
wystarczy odwołać się do pierwszego i trzeciego indeksu tablicy (pierwszy indeks jest równy liczbie 0, drugi - 1, trzeci -2 itd.)
Tablica asocjacyjna
Tablice asocjacyjne to tablice, w których zamiast indeksu numerycznego poszczególne komórki mają swoje nazwy - tak zwane klucze. Aby odczytać daną wartość z tablicy asocjacyjnej trzeba się odwołać do tablicy poprzez nazwę odpowiedniej komórki. Tablica przechowuje więc pary klucz-wartość.
Poniższy rysunek przedstawia przykład tablicy asocjacyjnej:
Aby utworzyć tablicę prostą używamy składni
$tablica = array( klucz1 => wartość1, klucz2 => wartość2, ..., kluczN => wartośćN );
Przykład 3
Utworzymy tablicę asocjacyjną z drugiej ilustracji:
<?php $tablica=array(
"imie" => "Jan",
"nazwisko" => "Kowalski",
"urodzony" => "Opole",
"obywatelstwo" => "polskie"
);
var_dump($tablica); ?>
Za pomocą funkcji var_dump wyświetlamy strukturę tablicy i jej zawartość
Wyświetlanie wartości tablicy asocjacyjnej
Aby wyświetlić daną wartość w wybranej komórce stosujemy notację z użyciem nawiasów kwadratowych, w których podajemy odpowiedni klucz
Aby więc wyświetlić zawartość komórki tablicy o kluczu nazwisko, należy zastosować notację: $tablica["nazwisko"].
Aby przejrzeć wszystkie elementy tablicy posłużmy się pętlami foreach.
Przykład 4
<?php $tablica = array(
"R" => "czerwony",
"G" => "zielony",
"B" => "niebieski",
"W" => "biały"
);
foreach ( $tablica as $key => $value ) {
echo $key.'-'.$value.'<br>';
}
echo '<br>'; ?>
Jak widać, możemy wyświetlać wszystkie elementy tablicy, zarówno wartości, jak i klucze.
Pytania
Jak zmienić wartość obywatelstwa w tablicy z powyższego przykładu?
$tablica["obywatelstwo"]="hiszpańskie";
Podajemy więc odpowiedni klucz w tablicy i przypisujemy żądaną wartość w komórce o tym kluczu.
Operacje na tablicach
Oto wykaz funkcji, które operują na tablicach w PHP.
Funkcja | Składnia | Opis |
count | count($tablica) |
Zlicza liczbę elementów tablicy. |
asort | asort($tablica) |
Funkcja asort w PHP umożliwia sortowanie elementów tablicy asocjacyjnej po wartościach poszczególnych kluczy. |
explode | explode($separator, $tekst) |
Funkcja dzieli zmienną tekstową na części w oparciu o zdefiniowany tekstowy separator i z części tych tworzy tablicę. |
implode | implode($separator, $tablica) |
Funkcja łączy elementy tablicy w zmienną tekstową, której poszczególne fragmenty będą oddzielone separatorem (znakiem oddzielającym). |
ksort | ksort($tablica) |
Funkcja ksort w PHP umożliwia sortowanie elementów tablicy asocjacyjnej względem nazw kluczy. |
list | list($zmienna1, ...) |
Funkcja list w PHP to konstrukcja, która umożliwia przypisanie kolejnym zmiennym (liście zmiennych) wartości z danej tablicy. |
rsort | rsort($tablica) |
Funkcja sortuje elementy tablicy indeksowanej numerycznie w porządku malejącym. |
sort | sort($tablica) |
Funkcja sortuje elementy tablicy indeksowanej numerycznie. |
str_split | str_split($tekst, $dlugosc) |
Funkcja dzieli zmienną tekstową na części według zadanej długości ciągu znaków. |
usort | usort($tablica, "funkcja_sortujaca") |
Funkcja usort w PHP umożliwia zastosowanie własnych kryteriów sortowania elementów tablicy indeksowanej numerycznie. |
uasort | uasort($tablica, "funkcja_sortujaca") |
Funkcja uasort w PHP umożliwia zastosowanie własnych kryteriów sortowania elementów tablicy asocjacyjnej. |
uksort | uksort($tablica, "funkcja_sortujaca") |
Funkcja uksort w PHP umożliwia zastosowanie własnych kryteriów sortowania kluczy tablicy asocjacyjnej. |
Tablice wielowymiarowe
Do tej pory mieliśmy do czynienia z tablicami jednowymiarowymi z jednym indeksem. W PHP można definiować tablice o wielu wymiarach i odwoływać się do nich po indeksach lub kluczach. Zapis $tablica[0][1][2] - to przykład wskazania elementu w tablicy trzywymiarowej. Zmieniać się może każdy z trzech indeksów.
Jak zdefiniować taką tablicę?
Tablica dwuwymiarowa
Tablicę dwuwymiarową można opisać jako tablicę wewnątrz tablicy. Oto sposób tworzenia tablicy dwuwymiarowej.
$tablica=array(array (wartość1, wartość2, ... wartośćN));
Przykład 5
<?php $tablica = array
(
array (1,2,3)
);
print_r($tablica);
echo '<br>';
$tablica[1][0]=3;
$tablica[1][1]=2;
$tablica[1][2]=1;
print_r($tablica); ?>
W tym przykładzie utworzyliśmy tablicę dwuwymiarową (tablice wewnątrz tablicy) i wyświetliliśmy jej strukturę. Tablica ta posiada trzy elementy przypisane do indeksu [0]. Następnie dodajemy pod indeksem głównym [1] kolejne trzy elementy (łącznie 6).
Przykład 6
Możemy też używać tablic asocjacyjnych. Oto przykład
<?php $tablica = Array
(
"Europa" => Array
(
"0" => "Polska",
"1" => "Niemcy",
"2" => "Czechy",
"3" => "Francja"
),
"Azja" => Array
(
"0" => "Rosja",
"1" => "Chiny",
"2" => "Indie",
"3" => "Japonia"
),
"Afryka" => Array
(
"0" => "RPA",
"1" => "Etiopia",
"2" => "Egipt",
"3" => "Ghana"
),
"Ameryka" => Array
(
"0" => "USA",
"1" => "Kanada",
"2" => "Argentyna",
"3" => "Brazylia"
)
);
print_r($tablica); ?>
Można też tak:
Przykład 7
<?php $tablica = Array
(
"Europa" => ["Polska", "Niemcy", "Czechy", "Francja"],
"Azja" => ["Rosja", "Chiny", "Indie", "Japonia"],
"Afryka" => ["RPA", "Etiopia", "Egipt", "Ghana"],
"Ameryka" => ["USA", "Kanada", "Argentyna", "Brazylia"]
);
print_r($tablica); ?>
Albo tak:
Przykład 8
<?php $tablica = [["Polska", "Niemcy", "Czechy", "Francja"], ["Rosja", "Chiny", "Indie", "Japonia"], ["RPA", "Etiopia", "Egipt", "Ghana"], ["USA", "Kanada", "Argentyna", "Brazylia"]];
print_r($tablica); ?>
W przypadku większej liczby wymiarów obrazowo można powiedzieć, że w danej tablicy przechowujemy więcej niż jedną tablicę.
Uwaga! PHP akceptuje wielowymiarowe tablice, ale należy pamiętać, że tablica wielowymiarowa to skomplikowana struktura i dla człowieka poruszanie się już po trzywymiarowej tablicy może być nieco kłopotliwe.
Oto przykład tablicy wielowymiarowej.
Przykład 9
<?php $tablica = [[[1,2],[-4,3]],[[5,6],[6,9]]];
print_r($tablica); ?>
Przykład mało praktyczny, ale działający.
© medianauka.pl, 2021-11-15, A-4257
Data aktualizacji artykułu: 2024-06-29