1 / 13

Wykład 6

Technologie internetowe. Wykład 6. Tablice. Wartości przechowywane w tablicy nazywane są elementami tablicy. Każdy z elementów tablicy posiada indeks (klucz) umożliwiający dostęp do niego. PHP obsługuje tablice indeksowane numerycznie , jak i asocjacyjne .

edan
Download Presentation

Wykład 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technologie internetowe Wykład 6 Tablice

  2. Wartości przechowywane w tablicy nazywane są elementami tablicy. Każdy z elementów tablicy posiada indeks (klucz) umożliwiający dostęp do niego. PHP obsługuje tablice indeksowane numerycznie, jak i asocjacyjne. Tablice indeksowane numerycznie stosowane są w większości języków programowania. W PHP indeks numeryczny zaczyna się od wartości "0". Tablice asocjacyjne stosowane w PHP jako wskaźnika używają najczęściej łańcucha znaków. Tablica to zmienna, która przechowuje zbiór lub sekwencję wartości. Tablica może posiadać wiele elementów, a każdy z nich może przechowywać pojedynczą zmienną, taką jak tekst bądź liczby, lub też inną zmienną. Tablice zawierające w sobie inne tablice są nazywane wielowymiarowymi. 0 1 2 indeksy Produkty

  3. Tablice indeksowane numerycznie Tworzenie tablicy: $produkty[0] = "Ksiazki"; $produkty[1] = "Filmy VHS"; $produkty[2] = "Filmy DVD"; Albo konstrukcja array: $produkty = array("Ksiazki","Filmy VHS","Filmy DVD"); $produkty1 = array(1=>"Ksiazki","Filmy VHS","Filmy DVD"); //zmiana indeksu startowego $produkty2 = array(1=>"Ksiazki",3=>"Filmy VHS",5=>"Filmy DVD"); // „tablica rzadka" Dostęp do elementów tablicy: echo $produkty[1]; for ($i = 0; $i<3; $i++) echo $produkty[$i];

  4. Tabliceasocjacyjne Tworzenie tablicy: $ceny = array("Biblia PHP"=>123, "Faraon"=>89, "Atlas świata"=>243); przykład tworzy tablicę w której nazwy produktów są kluczami, a ceny wartościami. $ceny["Pan Tadeusz"] = 149; Dostęp do elementów tablicy: echo $ceny["Pan Tadeusz"]; while ($el = each($ceny)){ echo $el["key"]; echo " - "; echo $el["value"]; echo "<br>";} funkcja each() zwraca bieżący element tablicy i przechodzi do następnego $el jest tablicą o 4 elementach: "key" i 0 – zawierają klucz bieżącego elementu tablicy $ceny "value" i 1 – zawierają wartość bieżącego elementu tablicy $ceny dla $ceny[1] to $el:

  5. Instrukcjalist() Przypisywanie elementów tablicy do zmiennych Podobnie jak array(), nie jest funkcją, ale elementem składni języka. Instrukcjalist() jest używana do przypisywania listy zmiennych w jednej operacji. Uwaga: list() działa tylko z tablicami o indeksach liczbowych zakładając że indeksy zaczynają się od 0. Przyklad $ceny = array("Biblia PHP"=>123, "Faraon"=>89, "Atlas świata"=>243); list($a,$b,$c,)= each($ceny); echo $a;

  6. Tablice heterogeniczne – wartości przechowywane w tablicy mogą być różnych typów. $mieszana = array("mały piesek", 63, 4.25, false); var_dump($mieszana); var_dump(tablica) wyświetla zawartość i typ zmiennej, dodając odstępy albo print_r (tablica) Tablice wielowymiarowe Elementy tablic mogą przechowywać inne tablice -> w ten sposób można utworzyć tablicę dwuwymiarową traktowaną jak macierz Tak zdefiniowana tablica składa się z trzech wektorów

  7. Tworzenie tablicy dwuwymiarowej: a) indeksowanej numerycznie $prod = array(array ("PHP", "Biblia PHP", 123), array("FAR", "Faraon", 89), array("ASW", "Atlas świata", 243) ); Dostęp do elementów tablicy: echo $prod[0][1]; //itd lub: for( $rzad=0; $rzad<3; $rzad++) { for( $kol=0; $kol<3; $kol++) echo " | ".$prod[$rzad][$kol]; echo "<br>"; }

  8. a) asocjacyjnej $prod = array( array ( "Kod"=>"PHP", "Nazwa"=>"Biblia PHP", "Cena"=>123 ), array( "Kod"=>"FAR", "Nazwa"=>"Faraon", "Cena"=>89 ), array( "Kod"=>"ASW", "Nazwa"=>"Atlas świata", "Cena"=>243) ); Dostęp do elementów tablicy: echo $prod[0]["Nazwa"]; //itd lub: for( $rzad=0; $rzad<3; $rzad++) echo " | ".$prod[$rzad]["Kod"]. " | ".$prod[$rzad]["Nazwa"]. " | ".$prod[$rzad]["Cena"]." |<br>";

  9. Sortowanie tablic Funkcja sort() $produkty = array("Książki","Filmy VHS","Filmy DVD", "filmy DVD", "Plyty CD", Plyty VCD"); for($i=0; $i<6; $i++) echo $produkty[$i]."<br>"; echo "Oto produkty:<br>"; sort($produkty); echo "Oto sortowane produkty:<br>"; for($i=0; $i<5; $i++) echo $produkty[$i]."<br>"; rsort($produkty);//porządek odwrotny! for($i=0; $i<5; $i++) echo $produkty[$i]."<br>"; F. sort() zwraca uwagę na wielkość liter, dlatego wielkie litery zostaną umieszczone przed małymi

  10. Podczas sortowania tablic asocjacyjnych zależy nam często na utrzymaniu razem kluczy i wartości. W takim przypadku należy użyć funkcji asort() lub ksort() $ceny = array("Biblia PHP"=>123, "Faraon"=>89, "Atlas świata"=>243, "Pan Tadeusz"=> 149); asort($ceny); echo "Towary wg. wartosci: <br> "; while ($el = each($ceny)){ echo $el["key"]; echo " - "; echo $el["value"]; echo "<br>"; } ksort($ceny); echo "Towary wg. nazwy: <br> "; while ($el = each($ceny)) echo $el["key"]." - ".$el["value"]."<br>"; Sortowanie odwrotne arsort() i krsort()

  11. Iterowanie przez tablicę Instrukcja foreach() przypisuje wartość elementu zmiennej wskazywanej przez słowo kluczowe as foreach(tablica as wartość) { instrukcje }; $dlugosci = array(260, 194, 123, 67, 10, 0); foreach($dlugosci as $cm) { $cal = $cm / 2.54; echo " $cm centymetrów to $cal cali <br>"; } Wyszukiwanie minimalnej i maksymalnej wartości w tablicy min(tablica), max(tablica) echo "Najmniejsza wartosc:".min($dlugosci)." <br>"; echo "Najwieksza wartosc:".max($dlugosci)." <br>";

  12. Liczenie elementów tablicy count(tablica) F. count() działa na wszystkich typach zmiennych i zwraca 0 jeśli badana jest zmienna pusta lub nieustawiona (można wykorzystać isset() i is_array()) Do rozdzielania ciągów na tablicę służy funkcja explode(). Jako pierwszy parametr trzeba do niej podać znak lub dłuższy ciąg który oddziela kolejne pola, jako drugi ciąg do rozdzielenia. <?php $dane="alfa;beta;gamma;delta"; $tablica = explode(";", $dane); ?>

  13. Przekazywanie tablic do innego pliku metodą GET: serialize (zamiana tablicy na ciąg znaków) unserialize Dodatkowo konieczneaddslashes atripslashes <FORM method=get action="przechwyt_tab.php"> <?php $produkty = array("Ksiazki","Potop", 129.00); echo "Po serializacji...".$p2=stripslashes(serialize($produkty)); ?> <INPUT type ='hidden' value='<?php echo $p2?>' name='p2'> <INPUT type ='submit' value='wyslij'> </form> plik przechwyt_tab.php : <?php echo $_GET["p2"]."<BR>"; $p3=unserialize(stripslashes($_GET["p2"])); echo"<BR>"; echo $p3[0];?>

More Related