30 dniowy kurs php – dzień 7 – tablice


Back-end (php, mysql)

Co jeśli masz dużo zmiennych, które chciałbyś pogrupować w logiczne zbiory? W takim wypadku idealnym rozwiązaniem są tablice. W php nazywają się array.

Tablice numeryczne

Załóżmy, że masz 3 owoce: banan, gruszka, arbuz. Możesz każdej z nich nadać osobną zmienną: $owoc1 = ‚banan’, $owoc2 = ‚gruszka’, $owoc3 = ‚arbuz’, ale prościej będzie zgrupować wszystkie 3 owoce w jedną tablicę.  Jak to wygląda w praktyce?

<?php

// zmienne
$owoc1 = 'banan';
$owoc2 = 'gruszka';
$owoc3 = 'arbuz';

// tablica

$owoce = array('banan','gruszka','arbuz');

// można też przypisać obiekty do tablicy w stylu zmiennych

$owoce[0] = 'banan';
$owoce[1] = 'gruszka';
$owoce[2] = 'arbuz';

// w obu przypadkach efekt będzie ten sam

echo $owoce[0] . ' to moj ulubiony owoc';

?>

We wszelkich językach programowania liczy się od zera. 0 jest w tablicy array zawsze pierwszym znakiem, więc wywołując z niej elementy pamiętaj, że licząc „po ludzku” np. 8 element będzie dla php elementem 7 z kolei.

Tablice asocjacyjne

Powyższy przykład to nie wszystko co mogą tablice. W tablicach możesz przypisywać jeszcze dane zamiast wspomnianych liczb. Czyli zamiast 0, 1, 2 etc. możesz również podać swoje własne, dowolne nazwy. Schemat jest w zasadzie identyczny tylko przy array w nawiasie wstawiasz znak strzałki => przypisując konkretną nazwę. Przy przypisywaniu w stylu zmiennych nazwę zamiast liczby wstawiasz w nawiasie kwadratowym.

<?php

$tablica = array('owoc'=>'arbuz' , 'warzywo'=>'ziemniak');

// lub

$tablica['owoc'] = 'arbuz';
$tablica['warzywo'] = 'ziemniak';

echo $tablica['owoc'] . ' jest owocem<br/>';
echo $tablica['warzywo'] . ' jest warzywem<br/>';

?>

Tablice wielowymiarowe

Ostatni z przykładów zastosowania tablic. W skrócie jest to tablica w tablicy, czyli do jednego z elementów tablicy przypisujemy inną dowolnie rozbudowaną tablicę. W ten sposób można tworzyć naprawdę bardzo rozbudowane struktury. Ja jednak pokażę Ci tylko pojedyncze zagłębienie czyli tablica będzie 2 wymiarowa.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>

<?php

$owoce = array
  (
  'slodkie'=>array
  (
  'gruszki',
  'arbuzy',
  'pomarańcze'
  ),
  'kwaśne'=>array
  (
  'wiśnie'
  ),
  'morza'=>array
  (
  'krewetki',
  'ostrygi',
  'homary'
  )
  );

echo '
Bardzo lubię słodkie owoce takie jak:
 '. $owoce['slodkie'][0] .', '. $owoce['slodkie'][1] .', '. $owoce['slodkie'][2] .
'. <br/>Nie przepadam za kwaśnymi jak '. $owoce['kwaśne'][0] .
'. <br/>Uwielbiam również owoce morza: '.
$owoce['morza'][0] .', '. $owoce['morza'][1] .', '. $owoce['morza'][2] .'.';

/* powyższe echo wyświetli:

Bardzo lubię słodkie owoce takie jak: gruszki, arbuzy, pomarańcze.
Nie przepadam za kwaśnymi jak wiśnie.
Uwielbiam również owoce morza: krewetki, ostrygi, homary.

*/

?>

</body>
</html>

To tyle na dzisiaj. Już jutro kolejna lekcja.