Menu

Tablice w PHP: tworzenie, odczyt, pętle i wypisywanie

Tablica w PHP to uporządkowana lista wartości, z których każda leży pod kluczem: $fruits = ['apple', 'banana']; odczytujesz jako $fruits[0]. Dowiedz się, jak tworzyć tablice, odczytywać i zmieniać elementy, przechodzić po nich, wypisywać je i po którą funkcję sięgnąć.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Tablica w PHP przechowuje listę wartości pod kluczami. Utwórz ją nawiasami kwadratowymi, $fruits = ['apple', 'banana', 'cherry'];, i odczytaj element po indeksie, $fruits[0]. Indeksy zaczynają się od 0, a count($fruits) podaje liczbę elementów.

Każda tablica w PHP to uporządkowana mapa: każda wartość leży pod kluczem. Gdy nie wybierasz kluczy, PHP numeruje je 0, 1, 2... i dostajesz tablicę indeksowaną. Gdy wybierasz je sam (['name' => 'Ada']), dostajesz tablicę asocjacyjną. Obie są tym samym typem array.

Tworzenie tablicy

Nawiasy kwadratowe to zwykła składnia. array() to starszy zapis, który daje dokładnie to samo. range() buduje listę liczb lub liter, a array_fill() powtarza jedną wartość.

Tablica w PHP może jednocześnie przechowywać wartości różnych typów, w tym inne tablice. Tablica tablic to tablica wielowymiarowa, zwykły sposób przechowywania wierszy danych.

Pierwszy i ostatni element

PHP nie ma ujemnych indeksów. $arr[-1] nie oznacza „ostatni”: szuka klucza o nazwie -1, a gdy go nie ma, PHP wypisuje Warning: Undefined array key -1. Użyj array_key_first() i array_key_last(), które działają też wtedy, gdy klucze nie zaczynają się od 0.

end($queue) także zwraca ostatnią wartość, ale jako efekt uboczny przesuwa wewnętrzny wskaźnik tablicy, więc wersja oparta na kluczu jest czytelniejszym wyborem.

Wypisywanie tablicy

echo $arr nie działa: wypisuje słowo Array i ostrzeżenie. Wybierz wyjście pasujące do zadania:

  • print_r($arr) dla czytelnego zrzutu podczas debugowania.
  • var_dump($arr), aby zobaczyć też typ i długość każdej wartości.
  • implode(', ', $arr), aby zamienić wartości w jeden string do wyświetlenia.
  • json_encode($arr), aby wysłać tablicę do JavaScriptu lub API.

Strona o print_r i var_dump opisuje opcje formatowania, w tym wypisywanie tablicy wewnątrz HTML.

Przechodzenie po tablicy

foreach to pętla stworzona dla tablic: podaje każdą wartość, a na życzenie także klucz. Pętla for z indeksem działa również dla tablic indeksowanych, których klucze idą od 0 bez przerw.

Tablice są kopiowane, a nie współdzielone

Przypisanie tablicy do innej zmiennej albo przekazanie jej do funkcji daje kopię. Zmiana kopii nie rusza oryginału. Dodaj & do parametru, gdy funkcja ma zmienić tablicę wywołującego.

Funkcje tablicowe według zadania

PHP ma ponad 70 funkcji tablicowych. Oto te, których będziesz używać najczęściej, każda z własną stroną:

ZadanieFunkcja
Dodanie na koniecarray_push() lub $arr[] =
Liczba elementówcount()
Sprawdzenie, czy wartość istniejein_array()
Znalezienie klucza wartościarray_search()
Sprawdzenie, czy klucz istniejearray_key_exists()
Łączenie tablicarray_merge()
Przekształcenie każdej wartościarray_map()
Zostawienie części wartościarray_filter()
Sortowaniesort(), usort() i pokrewne
Usunięcie elementuunset(), array_splice()
Pobranie fragmentuarray_slice()
Usunięcie duplikatówarray_unique()
String na tablicę i z powrotemexplode(), implode()

Klucze, które po cichu się łączą

Klucze tablicy to liczby całkowite albo stringi, a PHP niektóre klucze konwertuje za ciebie. String wyglądający jak dziesiętna liczba całkowita, na przykład "1", staje się liczbą całkowitą 1, więc $a["1"] i $a[1] to to samo miejsce. "01" i "1.5" pozostają stringami. Dlatego tablica zbudowana z danych formularza lub pliku CSV może mieć mniej elementów, niż się spodziewasz.

Najczęściej zadawane pytania

Jak utworzyć tablicę w PHP?

Użyj nawiasów kwadratowych: $colors = ['red', 'green', 'blue'];. Pusta tablica to $items = [];. Starsza składnia array('red', 'green') robi to samo i nadal działa.

Jak wypisać tablicę w PHP?

echo nie wypisze tablicy (wypisuje słowo Array i ostrzeżenie). Użyj print_r($arr) dla czytelnego zrzutu, var_dump($arr), aby zobaczyć też typy, albo echo implode(', ', $arr), aby wypisać wartości w jednej linii.

Jak pobrać ostatni element tablicy w PHP?

Użyj $arr[array_key_last($arr)] (PHP 7.3+) albo end($arr). PHP nie ma ujemnych indeksów: $arr[-1] szuka klucza o nazwie -1, który zwykle nie istnieje.

Czy tablice w PHP są przekazywane przez wartość, czy przez referencję?

Przez wartość. $b = $a; daje $b własną kopię, więc zmiana $b nie zmienia $a. Aby zmodyfikować tablicę wywołującego wewnątrz funkcji, zadeklaruj parametr jako referencję: function add(array &$list).

Czym różni się tablica indeksowana od asocjacyjnej w PHP?

To ten sam typ. Tablica indeksowana ma klucze całkowite 0, 1, 2..., które PHP nadaje za ciebie; tablica asocjacyjna używa kluczy, które wybierasz sam, zwykle stringów takich jak 'name'. Jedna tablica może nawet łączyć oba rodzaje.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ