Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

Tablica asocjacyjna w PHP z przykładami (zdefiniuj własne indeksy)

Definiowanie indeksu tablicy

Na poprzedniej lekcji pokazałem w jaki sposób utworzyć tablicę przechowującą dane uczniów. O ile wiedzieliśmy, że indeks “0” odnosił się do imienia, “1” do nazwiska, a “2” do daty urodzenia, o tyle inna osoba korzystająca z naszego kodu wcale nie musi tego wiedzieć.

Nie mówiąc już o modyfikacjach skryptu po latach…

Wtedy, nawet jeśli masz pamięć absolutną, nie będziesz pamiętać który indeks odpowiada konkretnemu parametrowi.

Tablice asocjacyjne w PHP

Istnieje pewien mechanizm, który pomaga się łatwiej odnaleźć w tworzonych tablicach. Chodzi tu o definiowanie własnych indesków dla tablic, czyli tzw. tablicę asocjacyjną.

Zamiast pisać $uczen[0] = ‘Marcin’, możemy użyć $uczen[‘imie’] = ‘Marcin’.

Wtedy struktura danych staje się dużo bardziej czytelna i przyjazna.

Zobacz poniższy listing:

<?php 
  $uczen['imie'] = "Janek";
  $uczen['nazwisko'] = "Kowalski"; 
  $uczen['dataUrodzenia'] = "14-10-1995";

  var_dump($uczen);

W ten sposób uzyskasz jasną strukturę danych ucznia, do których bardzo łatwo się dostać. Jeśli zobaczysz w kodzie: $uczen[‘imie’] możesz założyć, że w tym indeksie kryje się imię danego ucznia.

Możesz użyć polecenia var_dump, wyświetlić na ekranie całą zmienną $uczen wraz ze wszystkimi dodanymi wartościami.

Posłużyłem się tutaj tym samym przykładem co ostatnim razem. Jak widać, zestawienie danych wygląda nieco bardziej czytelnie. Sposób indeksowania pozostawiam do Waszego wyboru. Istnieje zupełna dowolność, jak komu wygodniej.

Zagnieżdżona tablica asocjacyjna

Zobacz teraz przykład, gdzie zamiast pojedynczego ucznia, mamy całą klasę uczniów. W terminologii programistycznej, tablicę, która przechowuje listę tablic asocjacyjnych.

Przejrzyj poniższy listing:

<?php
    $classroom = array();

    $student['firstName'] = 'Janek';
    $student['lastName'] = 'Kowalski';
    $student['birthday'] = '15-08-2000';

    $classroom[] = $student;

    $student['firstName'] = 'Mirek';
    $student['lastName'] = 'Nowak';
    $student['birthday'] = '2-11-2001';

    $classroom[] = $student;

    $student['firstName'] = 'Marcin';
    $student['lastName'] = 'Wesel';
    $student['birthday'] = '19-05-1989';

    $classroom[] = $student;

    var_dump($classroom);

Zmienna $classroom przechowuje informacje o wszystkich uczniach w klasie. W zmiennej $student tworzymy informacje o pojedynczym uczniu, po czym dodajemy je jako kolejny rekord do tablicy $classroom.

Po wywołaniu polecenia var_dump na całej klasie, otrzymamy coś takiego:

array(3) { 
  [0]=> array(3) { ["firstName"]=> string(5) "Janek" ["lastName"]=> string(8) "Kowalski" ["birthday"]=> string(10) "15-08-2000" } 
  [1]=> array(3) { ["firstName"]=> string(5) "Mirek" ["lastName"]=> string(5) "Nowak" ["birthday"]=> string(9) "2-11-2001" } 
  [2]=> array(3) { ["firstName"]=> string(6) "Marcin" ["lastName"]=> string(5) "Wesel" ["birthday"]=> string(10) "19-05-1989" } 
}

Czyli tablicę trzyelementową z wyszczególnionymi danymi każdego z uczniów.

W kolejnej lekcji zajmiemy się pętlą foreach. Przy jej pomocy bardzo łatwo przejdziemy po wszystkich wartościach przechowywanych w tablicy – niezależnie od tego, czy jest to tablica asocjacyjna czy klasyczna. Zapraszam!

Check out arrays in PHP on abcphp.net.

Spis lekcji w rozdziale trzecim

Poprzednia lekcja: Tablice wielowymiaroweNastępna lekcja: Pętla Foreach

Dodaj komentarz

Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.

Jeszcze nie jest za późnoPobierz Kurs PHP (aż 200 stron!) zupełnie za darmo!

Jeśli miałbyś wziąć tylko jedną rzecz z tej wizyty, zabierz właśnie ten darmowy kurs PHP. Praktyczny kurs w formie e-booka prosto na Twój e-mail.