Lekcje >> Podstawy PHP
Polimax

Drukarnia w Warszawie realizująca druk wizytówek, plakatów jak również fotoksiążki, fotoobrazy i fotokalendarze - z wysyłką na terenie całego kraju.

Inne operacje na tablicach

Operatory tablicowe

Podobnie jak w przypadku operatorów stosowanych do zmiennych skalarnych (zmienne, która mogą przechowywać jednocześnie tylko jedną wartość liczbową), również do tablic mają zastosowanie następujace operatory:

  • + unia - jeżeli mamy $t1+$t2, to operator ten dodaje kolejne elementy tablicy $t2 na końcu tablicy $t1. Jeżeli element tablicy $t2 posiada taki sam klucz jak któryś z elementów tablicy $t1, to taki element nie zostaje dodany;
  • == równość;
  • === identyczność;
  • != lub <> nierówność;
  • !== nieidentyczność.

Ćwiczenie 2_10_0_1. Przykład zastosowania operatora tablicowego + (unia)

Zastosuj następujący kod PHP:

<?php
  require_once('../moje_funkcje.php');
  $t1=array('k1'=>3,'k2'=>1);
  $t2=array('k1'=>4,'k3'=>2,'k4'=>67,'k5'=>34,'k6'=>8);
  pokaz_tablice($t1+$t2);
  $t3=array(3,1);
  $t4=array(4,2,67,34,8);
  pokaz_tablice($t3+$t4);
?>

W pierwszym dodawaniu, pominięty został element $t2['k1'], natomiast w drugim - elementy $t4[0] oraz $t4[1].

Ćwiczenie 2_10_0_2

Przetestuj działanie pozostałych operatorów porównań.

Tworzenie tablicy ze stringa za pomocą funkcji explode()

Tę funkcję możemy zastosować, jeżeli mamy ciąg znaków w którym poszczególne jego części oddzielone są określonym znakiem (np. znakiem przecinka, tabulacji, spacji, itd) lub kilkoma znakami (np. '^^^'). Cały string ulega rozbiciu, powstaje tablica, której elementami są fragmenty znajdujące się pomiędzy znakami rozdzielającymi. Funkcja posiada następującą postać: array explode(string $separator, string $ciag_znakow[, int $limit]). Opcjonalnie $limit ogranicza liczbę elementów tworzonej tablicy.

Ćwiczenie 2_10_0_3. Przykład tworzenia tablicy z łańcucha znaków za pomocą funkcji explode()

Zastosuj następujący kod PHP:

<?php
  require_once('../moje_funkcje.php');
  $tekst='8^^12^^3^^45';
  $tablica=explode('^^',$tekst);
  pokaz_tablice($tablica);
?>

Przekształcenie tablicy w ciąg znaków za pomocą funkcji implode()

Za pomocą tej funkcji wykonujemy operację odwrotną do pokazanej w poprzednim ćwiczeniu. Funkcja ma następującą postać: string implode(string $separator, array $tablica).

Ćwiczenie 2_10_0_4. Przykład przekształcenia tablicy w ciąg znaków, za pomocą funkcji implode()

Zastosuj następujący kod PHP:

<?php
  $tablica=array(8,12,3,45);
  $tekst=implode('^^',$tablica);
  echo $tekst;
?>

Kilka funkcji ułatwiających poruszanie się po tablicy

Każda tablica posiada wewnętrzny wskaźnik aktualnego elementu. Podczas tworzenia tablicy, wskazuje on pierwszy element.

  • Funkcja current() - zwraca wartość bieżącego elementu, nie przesuwając wskaźnika.
  • Funkcja each() - zwraca wartość bieżącego elementu oraz jego klucz/index, a następnie przesuwa wskaźnik o jedną pozycję, w kierunku ostatniego elementu tablicy. Wynik jest zwracany w postaci 4-elementowej tablicy o kolejnych elementach: $wynik[1], $wynik[value], $wynik[0], $wynik[key]. Dwa pierwsze elementy, to bieżąca wartość, natomiast dwa ostatnie, to bieżący klucz.
  • Funkcja next() - przesuwa wewnętrzny wskaźnik tablicy i zwraca element tablicy aktualnie wskazywany przez wskaźnik albo zwraca false, jeżeli nie ma już więcej elementów.
  • Funkcja prev() - działa przeciwnie jak next(), ponieważ cofa wskaźnik.
  • Funkcja end() - przesuwa wewnętrzny wskaźnik tablicy na ostatni element i zwraca jego wartość.
  • Funkcja reset() - ustawia wskaźnik na pierwszym elemencie i zwraca jego wartość. Jeżeli tablica jest pusta, to zwraca false.

Uwaga! Stosując powyższe funkcje, należy uważać aby nie przekroczyć zakresu elementów.

Ćwiczenie 2_10_0_5. Przykład zastosowania funkcji ułatwiająych porusznie się po tablicy: current(), each(), next(), prev(), end(), reset().

Zastosuj następujący kod PHP:

<?php
  require('../moje_funkcje.php');
  $tablica=array(8,12,3,45);
  $element=current($tablica);
  echo $element;
  $t=each($tablica); 
  pokaz_tablice($t);
  next($tablica);
  $element=current($tablica);
  echo $element;
  prev($tablica);
  $element=current($tablica);
  echo '<br >'.$element;
  $element=end($tablica);
  echo '<br >'.$element;
  $element=reset($tablica);
  echo '<br >'.$element;
?>

Prześledźmy kolejne kroki:

  1. utworzyliśmy 4-elementową tablicę $tablica o elementach 8,12,3,45;
  2. funkcja current($tablica) zwraca pierwszy $element tablicy;
  3. funkcja each($tablica) zwraca wartość i klucz pierwszego elementu i przesuwa wskaźnik na element drugi;
  4. funkcja next($tablica) przesuwa wskaźnik na trzeci element tablicy;
  5. funkcja current($tablica) zwraca trzeci $element tablicy;
  6. funkcja prev($tablica) cofa wskaźnik na drugi element tablicy;
  7. funkcja current($tablica) zwraca drugi $element tablicy;
  8. funkcja end($tablica) zwraca ostatni $element tablicy;
  9. funkcja reset($tablica) zwraca pierwszy $element tablicy;