Tablice

Szybki hosting dla WordPressa

Wprowadzenie

Tablice są specyficznym typem zmiennych – to, najprościej mówiąc, zmienne zawierające w sobie uporządkowany zbiór zmiennych. Dostęp do danych uzyskuje się podając odpowiednią liczbę w nawiasie kwadratowym, bezpośrednio po nazwie zmiennej. Liczba ta, to tak zwany indeks – kolejny numer zmiennej w tablicy. Tak samo przypisuje się wartość do tablicy. Przykład:

<?
 
    $tablica[0] = "Wpis numer 0";
    $tablice[1] = "Wpis numer 1";
    $tablica[2] = "Wpis numer 2";

    echo $tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2";

?>

Aby najprościej dodać kolejny wpis na końcu tablicy wystarczy przy przypisywaniu wartości nie wpisywać indeksu do nawiasów kwadratowych. Jeśli w ten sposób dodawane są wpisy do nowej tablicy, to pierwszy wpis ma indeks 0.

Indeks można też podawać ze zmiennej, a nawet z innej tablicy czy funkcji:

<?
 
    $tab1[] = 1;
    $tab1[] = 0;
    $tab1[] = 3;
    $tab1[] = 2;

    $tab2[] = "Pierwszy";
    $tab2[] = "Drugi";
    $tab2[] = "Trzeci";
    $tab2[] = "Czwarty";

    echo $tab2[$tab1[2]];

?>

Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie).

Tablice asocjacyjne

W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne. Są to tablice, w których zamiast indeksów liczbowych używa się identyfikatorów znakowych (kluczy):

<?
    
    $tablica['imie'] = 'Jan';
    $tablica['nazwisko'] = 'Kowalski';
    $tablica['adres'] = 'Polna 1';

 echo $tablica['imie'].' '.$tablica['nazwisko'].', ul. '.$tablica['adres'];

?>

W tym miejscu warto wspomnieć o alternatywnym sposobie definiowania tablic, zarówno asocjacyjnychm, jak i indeksowanych numerycznie. Służy temu funkcja array():

<?
 
     $tab = array(
        'imie' => 'Jan',
        'nazwisko' => 'Kowalski',
        'adres' => 'Polna 1'
    );

    $tab2 = array(0 => 'zero', 1 => 'jeden', 2 => 'dwa', 3 => 'trzy');

    echo $tab['nazwisko'].' '.$tab2[1];

?>

Przeglądanie tablic

Bardzo często zachodzi potrzeba wykonania operacji na wszystkich elementach tablicy. Sprawa jest prosta jeśli tablica jest zwykłą tablicą z indeksami liczbowymi i znasz ilość tych elementów:

<?
 
    $tab[] = 1;
    $tab[] = 2;
    $tab[] = 3;
    $tab[] = 4;
    $tab[] = 5;

    for ($x = 0; $x < 5; $x++) {   // Pętla wykona się 5 razy (0...4)
        echo $tab[$x];
    }

?>

Sprawa nieco się komplikuje, jeśli nie znasz ilości elementów tablicy. Wtedy z pomocą przychodzi funkcja count($nazwa_tablicy). Zwraca ona ilość elementów w tablicy podanej jako parametr. Wtedy pętla wygląda tak:

<?
 
    $tab[] = 1;
    $tab[] = 2;
    $tab[] = 3;
    $tab[] = 4;
    $tab[] = 5;

    for ($x = 0; $x < count($tab); $x++) {
        echo $tab[$x];
    }

?>

A co jeśli masz do czynienia z tablicą asocjacyjną? Nawet jeśli znasz ilość jej elementów, to pozostaje kwestia indeksowania. Wykorzystaj konstrukcję foreach():

<?
 
    $tab["imie"] = "Jan";
    $tab["nazwisko"] = "Kowalski";
    $tab["adres"] = "Polna 1";

    foreach ($tab as $element) {
        echo "$element
";
    }

    echo '
';

    foreach ($tab as $klucz => $element) {
        echo "$klucz = $element
";
    }
?>

Pętla wykonuje się dla każdego elementu tablicy. W kolejnych iteracjach bieżący element tablicy przepisywany jest do zmiennej $element. W drugim przykładzie widzisz inny wariant foreach(), pozwalający obok wartości elementu tablicy pobrać także nazwę klucza ($klucz).

Sortowanie tablic

PHP ofertuje cały zestaw funkcji służących do sortowania tablic. Są to: asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), i uksort(). Większość funkcji (oprócz trzech ostatnich) przyjmuje jeden parametr: zmienną zawierającą tablicę do posortowania. Żadna nie zwraca wyniku.

Opis działania poszczególnych funkcji:

  • asort() – sortuje tablice asocjacyjne, zachowując przypisanie kluczy do wartości:
<?
 
  $owoce = array ("d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia");

  asort ($owoce);
  reset ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu

    while (list ($klucz, $wartosc) = each ($owoce)) {
        echo "$klucz = $wartosc\n";
    }

?>

Wynikiem działania powyższego przykładu powinno być:

c = aronia
b = banan
d = mango
a = papaja
  • arsort() – sortuje w odwrotnej kolejności tablice asocjacyjne, zachowując przypisanie kluczy do wartości. Funkcja prawie identyczna jak poprzednia, tyle że dane sortowane są “od tyłu”,
  • ksort() – sortuje tablice asocjacyjne według kluczy. Powyższy przykład po podmianie funkcji asort na ksort powinien dać taki wynik:
a = papaja
b = banan
c = aronia
d = mango
  • rsort() – sortuje zwykłe tablice (nieasocjacyjne) w odwróconej kolejności,
  • sort() – sortuje zwykłe tablice (nieasocjacyjne) w kolejności alfabetycznej,
  • uasort() – funkcja sortująca tablice asocjacyjne za pomocą zdefiniowanej przez użytkownika funkcji porównującej elementy (nazwa funkcji jest podawana za pomocą drugiego parametru),
  • usort() – funkcja sortująca zwykłe tablice za pomocą funkcji zdefiniowanej przez użytkownika,
  • uksort() – funkcja sortująca tablice asocjacyjne według klucza za pomocą funkcji zdefiniowanej przez użytkownika.

W trzech ostatnich funkcjach sortujących należy jako drugi parametr podać nazwę funkcji porównującej elementy tablicy. Funkcja taka przyjmuje 2 argumenty. Zwracane jest 0 jeśli argumenty są sobie równe, -1 jeśli pierwszy argument jest mniejszy od drugiego, a 1 jeśli jest większy.

Tworzenie stringów z tablic i odwrotnie

PHP umożliwia zamianę stringów na tablice i odwrotnie. Zamiana taka jest bardzo przydatna, jeśli zachodzi potrzeba wyciągnięcia fragmentu danych z ciągu znaków. Załóżmy, że odczytałeś z pliku z danymi linię z loga zapisanego przez licznik WWW: “12/11/2000;19:23:33;Netscape Navigator;192.168.1.1”.

Jak widać dane rozdzielone są średnikami. Do rozdzielania stringów na tablicę służy funkcja explode(). Jako pierwszy parametr przyjmuje ona znak lub dłuższy ciąg, który oddziela kolejne pola, jako drugi parametr – string do rozdzielenia.

Opcjonalnie można podać trzeci argument, który oznacza maksymalną liczbę pól – jeśli jest ich więcej, to ostatnie pole będzie zawierało wszystkie pozostałe pola. Funkcja zwraca tablicę zawierającą kolejne pola. W przykładzie z danymi z licznika wywołanie funkcji powinno wyglądać tak:

<?
 
     $dane = "12/11/2000;19:23:33;Netscape;192.168.1.1";

    $tablica = explode(";", $dane);

    foreach ($tablica as $wartosc) {
        echo "$wartosc
";
    }

?>

Istnieje także rozszerzona wersja funkcji explode: split(). Różnica polega na tym, że zamiast prostego ciągu znaków rozdzielających pola, akceptuje ona wyrażenia regularne.

Czasem potrzebne jest działanie w drugą stronę: złącznie pól tablicy w jeden ciąg, w którym pola oddzielone są znakiem (lub kilkoma znakami). Do tego celu służy funkcja implode(). Jako pierwszy parametr podawany jest ciąg za pomocą którego “sklejane” są elementy tablicy, a jako drugi – tablica do posklejania.

Zwracany jest string zawierający posklejane elementy. Jako przykład zastosowania może posłużyć zapisywanie danych o użytkowniku w aplikacji licznika odwiedzin – tablica zawiera dane o odwiedzającym, a potrzebny jest ciąg oddzielany średnikami. Wtedy wywołanie funkcji powinno wyglądać tak:

<?
 
   $tablica = array('12/11/2000', '19:23:33', 'Netscape', '192.168.1.1');

   $dane = implode(";", $tablica);

   echo $dane;

?>

Hosting stworzony dla WordPressa

Masz stronę WWW na WordPressie? My też uwielbiamy ten system dla stron internetowych. Dlatego stworzyliśmy hosting specjalnie dla jego użytkowników.


  • Czy artykuł był pomocny ?
  • Tak   Nie
Szukaj
Generic filters
Tylko dokładne dopasowania
Szukaj w tytułach
Szukaj w treści
Filter by Article Categories
Najczęściej zadawane pytania
Dodatkowe narzędzia hostingu
Statystyki serwera (nowe)
Połączenie SSH
Statystyki serwera (stare)
WebFTP
Autoinstalator
Kontrola wersji (SVN)
Listy mailingowe
Poczta home.pl
Obsługa poczty webmail
Programy pocztowe
Nowa platforma home.pl
Częste pytania
Bezpieczeństwo
Instalacje
Panel klienta
Domeny
Hosting
Serwer Apache
Bazy danych
Certyfikaty SSL
Zamawianie SSL
Instalacja i konfiguracja SSL
Poczta e-mail
WordPress Hosting SSD
Dodatki od partnerów
Poprzednia platforma home.pl
Certyfikaty SSL
Zamawianie certyfikatów SSL
Konfiguracja i instalacja SSL
Panel home.pl
Informacje podstawowe
Pulpit
Usługi
Płatności
Profil
Centrum Pomocy
Operacje w Panelu home.pl
Serwery
WebFTP
Informacje podstawowe
Konfiguracja serwerów
Serwery Unix
Serwery Windows
Obsługa baz danych
phpMyAdmin (MySQL)
phpPgAdmin (PgSQL)
myLittleAdmin (MSSQL)
Sklep internetowy eSklep
Panel usługi eSklep
RODO w sklepie internetowym
Panel sklepu internetowego
Pierwsze kroki
Promocja sklepu
Sprzedaż
Pierwsze uruchomienie
Dodatki od partnerów
Asortyment
Klienci
Integracje
Inne integracje
Systemy aukcyjne
Baza produktów
Aplikacje
App store
Aplikacja mobilna
Marketing
Modyfikacja wyglądu
Dokumentacja
Dla deweloperów
Style graficzne
Inne zagadnienia
Raporty i statystyki
Zawartość
Filmy instruktażowe
Konfiguracja sklepu
Rozliczenia i dokumenty
Faktury
Zmiana danych (cesja)
Rozliczenia i płatności
Dokumenty do pobrania
Produkty i usługi
Kreator Stron WWW
eCommerce
Moduły
Ustawienia
Szablony
Nawigacja
Publikacja i dodatki
Szybki start
Prestahosting
Profesjonalne usługi IT
Certyfikaty SSL
Przywracanie danych
Udostępnienie logów
Operacje na plikach i bazach danych
WordPress
Terminal płatniczy SumUp
Wordpress hosting SSD
Domeny
Informacje podstawowe
Rejestracja / opłacanie
Konfiguracja domen
Transfer domen
Giełda domen
Dodatki do domen
Serwery VPS
Skrzynki e-mail
Microsoft Exchange
Cloud Email Xchange
Obsługa skrzynek w Panelu home.pl
Jak zarejestrować Personal email lub Business email?
Bezpieczeństwo
eKsięgowość
Reklama internetowa
Reklama Allegro Ads
Tworzenie stron WWW
Contact LEADer
Reklama banerowa Google
Zakupy Google
Google Ads (AdWords)
eKampanie Google
SEMSTORM
Pozycjonowanie
rankingCoach
Baza wiedzy
Facebook
Systemy CMS
Internet w praktyce
Przydatne programy
Konfiguracja programów FTP
Zagadnienia techniczne
.htaccess
mod_rewrite
Kursy i specyfikacje
Kurs HTML
Kurs PHP
Kurs SQL
Rejestracja usług
RODO w home.pl
English
Website Builder
Marketplace
Control Panel
Webmail
FTP
Office 365
WordPress
SSL certificate
Aplikacje w marketplace
SimplySign
Antywirus ESET
SiteLock - ochrona WWW
Dropsuite Email Backup
CCleaner
Antywirus Kaspersky
Dropbox - dysk w chmurze
Płatności PayU
Programy antywirusowe AVAST
Office 365
AVG PC TuneUp
Reklama na start
Google AdWords
Zareklamuj stronę WWW na Facebook
Cloud Email Xchange
Brand24
Microsoft OneDrive
FreshMail.pl
Tłumaczenia online
G Suite - poczta Gmail
Program prowizyjny
Acronis Backup
Informacje podstawowe
Ustawienia dodatkowe
Panel użytkownika
Panel administratora
lub