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

  1. Tablice indeksowane numerycznie
  2. Tablice asocjacyjne
  3. Operacje na tablicach
  4. Tablice wielowymiarowe

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.

tablice w php

 

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

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:

tablica asocjacyjna w php

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

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: 2021-11-16



©® Media Nauka 2008-2023 r.