Menu
Jest wolny
rejestracja
główny  /  Problemy/ Rodzaje tablic w PHP. Deklarowanie tablicy w php, typy tablic i praca z elementami php zagłębiają się w tablicę asocjacyjną

Typy tablic w PHP. Deklarowanie tablicy w php, typy tablic i praca z elementami php zagłębiają się w tablicę asocjacyjną

Tablice asocjacyjne

Proste tablice używają tylko kluczy do oddzielania elementów i nie mają praktycznej wartości:

W tablicach asocjacyjnych klucze opisują rodzaj zawartej w nich wartości - wiek, imię itp.:

„Władimir”, „wiek” => 20]; ?>

Tablice dwuwymiarowe i wielowymiarowe

Do tej pory zajmowaliśmy się tylko tablicami jednowymiarowymi, ale możemy również stworzyć tablicę dwuwymiarową lub dowolną tablicę wielowymiarową:

„Wasja”]; $ człowiek ["ręce"] = ["lewo", "prawo"]; print_r ($ człowiek); ?>

Jak widać, utworzyliśmy tablicę $człowiek, a następnie w niej utworzyliśmy kolejną tablicę $człowiek ["ręce"]. Wynik w przeglądarce:

Tablica (=> Wasia => Tablica (=> lewo => prawo))

Możemy tworzyć wielowymiarowe tablice dowolnego zagnieżdżenia. Wyjście wartości takiej tablicy wygląda tak:

Praktyczne zastosowanie tablic wielowymiarowych

Pamiętasz, że w poprzedniej lekcji chcieliśmy pogrupować produkty i ich cechy? Przypomnę kod, który otrzymaliśmy:

Teraz możemy umieścić wszystkie te informacje w jednej zmiennej. W tym przypadku każdy produkt będzie tablicą asocjacyjną, a wszystkie produkty będą znajdować się w prostej tablicy:

"iPhone", "cena" => 5000, "ilość" => prawda], ["nazwa" => "Samsung Galaxy", "cena" => 5000, "ilość" => prawda], ["nazwa" = > „Nokia Lumia”, „cena” => 4000, „ilość” => prawda]]; ?>

Lub alternatywnie:

"iPhone", "cena" => 5000, "ilość" => prawda]; $ produkty = ["nazwa" => "Samsung Galaxy", "cena" => 5000, "ilość" => prawda]; $ produkty = ["nazwa" => "Nokia Lumia", "cena" => 4000, "ilość" => prawda]; ?>

Obie opcje spowodują:

Array (=> Array (=> iPhone => 5000 => 1) => Array (=> Samsung Galaxy => 5000 => 1) => Array (=> Nokia Lumia => 4000 => 1))

1. Utwórz tablicę $ city, dodaj klucz nazwy z dowolną wartością. 2. Utwórz podtablicę ulic z dowolnymi losowymi ulicami. Każda ulica musi mieć nazwę i liczbę domów (liczba_budynków) oraz podtablicę numerów domów (stare_budynki), które mają zostać wyburzone.

Tablica asocjacyjna- niezbędny typ danych służący do opisu zbioru unikalnych kluczy i wartości asocjacyjnych - jest podstawowym elementem wszystkich języków programowania, w tym PHP. Jako takie, tablice asocjacyjne odgrywają tak ważną rolę w programowaniu WWW, że PHP zawiera obsługę wielu funkcji i właściwości, które mogą manipulować tablicami danych w każdy możliwy sposób. To szerokie wsparcie może być przytłaczające dla programistów poszukujących najbardziej wydajnego sposobu zarządzania macierzami w swoich aplikacjach. W tym artykule przedstawię 10 wskazówek, które pomogą Ci ciąć, niszczyć i niszczyć dane na nieskończoną liczbę sposobów.

1. Dodawanie elementów tablicy.

PHP jest słabo typizowanym językiem, to znaczy nie musi szczegółowo opisywać ani tablicy, ani jej rozmiaru. Zamiast tego tablicę można zadeklarować i wypełnić w tym samym czasie:

$ capitals = array ("Alabama" => "Montgomery", "Alaska" => "Juneau", "Arizona" => "Phoenix");

Dodatkowe elementy tablicy można dołączyć w następujący sposób:

$ capitals ["Arkansas"] = "Mała skała";

Jeśli pracujesz z tablicami numerowanymi i wolisz dołączać elementy (na początku tablicy) i dołączać elementy za pomocą dobrze nazwanej funkcji, rozważ funkcje array_push() i array_unshift() (te funkcje nie działają z tablicami asocjacyjnymi ).

2. Usuwanie elementów tablicy

Aby usunąć element z tablicy, użyj funkcji unset():

Nieustawione (kapitały $ ["Kalifornia"]);

Praca z tablicami numerowanymi liczbami daje większą swobodę w usuwaniu elementów tablicy. Oznacza to, że możesz użyć funkcji array_shitt() i array_pop(), aby usunąć element odpowiednio z początku i końca tablicy.

3. Zamień klucze i wartości

Załóżmy, że chcesz utworzyć nową tablicę o nazwie $ States ze stolicami stanów jako indeksami i stanami jako wartościami asocjacyjnymi. To zadanie (podmiana kluczy i wartości) można łatwo rozwiązać za pomocą funkcji array_flip():

$ capitals = array ("Alabama" => "Montgomery", "Alaska" => "Juneau", "Arizona" => "Phoenix"); $ stany = array_flip ($ wielkie litery); // $ states = array (// "Montgomery" => string "Alabama", // "Juneau" => string "Alaska", // "Phoenix" => string "Arizona" //);

4. Scalanie tablic

Załóżmy, że poprzednia tablica została użyta w połączeniu z internetową usługą „flash card” (flashcard - karta z tekstem i obrazkiem (używana w nauczaniu języka obcego)) i chcesz umożliwić uczniom sprawdzenie ich znajomości nie tylko stolice światowe, ale także stolice Stanów Zjednoczonych. Możesz połączyć tablicę (ze stolicami państw) z tablicą (ze stolicami świata) za pomocą funkcji array_merge():

$ stateCapitals = array ("Alabama" => "Montgomery", "Alaska" => "Juneau", "Arizona" => "Phoenix"); $ countryCapitals = array ("Australia" => "Canberra", "Austria" => "Wiedeń", "Algieria" => "Algier"); $ Capitals = array_merge ($ stateCapitals, $ countryCapitals);

5. Edycja wartości tablicy

Załóżmy, że dane znalezione w tablicy mogą zawierać błędy związane z użyciem wielkich liter i chcesz poprawić te błędy przed wprowadzeniem danych do bazy danych. W takim przypadku możesz użyć funkcji array_map(), aby zastosować funkcję zwrotną do każdego elementu tablicy:

Funkcja kapitalizacja (element $) (element $ = strtolower (element $); // Konwertuj wszystkie litery na małe, zwracaj ucwords (element $); // Konwertuj na wielkie litery pierwszy znak każdego słowa w ciągu) $ Capitals = tablica ( „ Alabama ”=>” montGoMEry ”,„ Alaska ”=>” Juneau ”,„ Arizona ”=>„ phoeniX ”); $ Capitals = array_map ("Wielkie litery", $ Capitals);

6. Sortuj tablice według kluczy

Aplikacje z fiszkami (flashcard - karta z tekstem i obrazkiem (używane podczas nauczania języka obcego)) wykorzystują różne techniki nauczania, w tym sortowanie kart w określony sposób, na przykład alfabetycznie. Tablice asocjacyjne można sortować według klucza za pomocą funkcji ksort():

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); ksort (kapitały $);

7. Losowanie kolejności tablicy

Możesz potasować elementy w losowej kolejności za pomocą funkcji tasowania ():

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); przetasować (kapitały $); foreach ($ wielkie litery jako $ k => $ v) echo "$ k: $ v
";

Wynik:

Zwróć uwagę na wyjście otrzymujemy nie tablicę asocjacyjną, ale tablicę liczbową.

Jeśli zamiast losować tablicę, chcesz losowo wybrać wartość, użyj funkcji array_rand().

8. Sprawdź, czy istnieją klucze i wartości

Możesz użyć funkcji in_array (), aby określić, czy istnieją elementy tablicy:

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); if (in_array ("Juneau", $ Capitals)) (echo "Istnieje!";) else (echo "Nie istnieje!";)

Możliwość określenia, czy klucze tablicy istnieją, jest mniej znana. Jest zaimplementowany za pomocą funkcji array_key_exists():

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); if (array_key_exists ("Alaska", $ wielkie litery)) (echo "Klucz istnieje!";) else (echo "Klucz nie istnieje!";)

9. Szukasz tablicy

Możesz dodać wyszukiwarkę do swojej fiszki, aby użytkownicy mogli łatwo znaleźć stan powiązany z konkretną stolicą. Można to zrobić za pomocą funkcji array_search() (ta funkcja przeszukuje tablicę pod kątem podanej wartości i zwraca odpowiedni klucz):

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); $ state = array_search ("Juneau", $ wielkie litery); // $ stan = "Alaska"

10. Standardowa biblioteka PHP

Standardowa biblioteka PHP (SPL) zapewnia programistom sporą liczbę struktur danych, interfejsów, wyjątków i innych funkcji, których PHP nigdy wcześniej nie miał. Wśród tych właściwości jest możliwość iteracji (powtarzania) tablicy przy użyciu składni obiektowej.

$ capitals = array ("Arizona" => "Phoenix", "Alaska" => "Juneau", "Alabama" => "Montgomery"); $ arrayObject = nowy ArrayObject ($ wielkie litery); foreach ($ arrayObject as $ state => $ capital) (printf ("Kapitał% s to% s
", $ stan, $ kapitał);) // Stolicą Arizony jest Phoenix // Stolicą Alaski jest Juneau // Stolicą Alabamy jest Montgomery

To tylko jedna z fajnych funkcji zawartych w SPL. Sprawdź dokumentację PHP, aby uzyskać więcej informacji.

Elementy tablicy w PHP mogą zawierać wartości dowolnego typu, takie jak liczby, ciągi, obiekty. Mogą również zawierać inne tablice, co w rzeczywistości oznacza tworzenie wielowymiarowy lub zagnieżdżone szyk.

Ta lekcja dotyczy wielowymiarowych (zagnieżdżonych) tablic PHP. Wyjaśnia, jak je tworzyć, jak nimi manipulować, jak przechodzić przez całą tablicę wielowymiarową w PHP.

Jak stworzyć tablicę wielowymiarową

Tablicę wielowymiarową można utworzyć za pomocą konstrukcji array(), która jest bardzo podobna do tworzenia zwykłej tablicy. Różnica polega na tym, że w tablicy wielowymiarowej każdy element jest również tablicą.

Na przykład:

$ myArray = tablica (tablica (wartość1, wartość2, wartość3), tablica (wartość4, wartość5, wartość6), tablica (wartość7, wartość8, wartość9));

Powyższy przykład tworzy dwuwymiarową tablicę. Tablica najwyższego poziomu zawiera 3 elementy. Każdy element jest również tablicą zawierającą 3 wartości.

Możesz również użyć tablicy asocjacyjnej jako tablicy wielowymiarowej. Poniższy przykład ilustruje tworzenie tablicy indeksowanej zawierającej 3 tablice asocjacyjne:

$ movies = array (array ("title" => "Tylne okno", "director" => "Alfred Hitchcock", "year" => 1954), array ("title" => "Full Metal Jacket", "director "=>" Stanley Kubrick "," rok "=> 1987), tablica (" tytuł "=>" Wredne ulice "," reżyser "=>" Martin Scorsese "," rok "=> 1973));

Możliwe jest zagnieżdżanie tablic tak głęboko w sobie, jak to konieczne (chociaż w praktyce głębokość zagnieżdżania rzadko przekracza 3 poziomy). Poniższy przykład ilustruje tablicę trójwymiarową:

$ myArray = array (tablica (tablica (wartość1, wartość2), tablica (wartość3, wartość4)), tablica (tablica (wartość5, wartość6), tablica (wartość7, wartość8)));

Dostęp do elementów w tablicy wielowymiarowej

Aby uzyskać dostęp do elementów tablicy wielowymiarowej, możesz użyć składni "nawiasów kwadratowych", która jest używana do pracy ze zwykłą tablicą. Jeśli chcesz uzyskać dostęp do elementów drugiego poziomu w dwuwymiarowej tablicy, wystarczy użyć drugiego zestawu nawiasów kwadratowych, na przykład:

$ myArray = array (tablica („jeden”, „dwa”, „trzy”), tablica („cztery”, „pięć”, „sześć”)); // Wydrukuj „sześć” echo $ myArray; ?>

A oto przykład demonstrujący dostęp do różnych elementów wielowymiarowej tablicy $ movies, którą stworzyliśmy wcześniej:

Echo „Tytuł pierwszego filmu:
"; echo $ filmy [" tytuł "]."

"; echo" Trzeci reżyser filmowy:
"; echo $ filmy [" reżyser "]"

"; echo" Zagnieżdżona tablica zawarta w pierwszym elemencie:
"; print_r ($ filmy); echo"

";

Wykonanie kodu da następujący wynik:

Tytuł pierwszego filmu: Rear Window Trzeci reżyser filmu: Martin Scorsese Zagnieżdżona tablica zawarta w pierwszym elemencie: Array (=> Rear Window => Alfred Hitchcock => 1954)

Ostatni przykład używa $ movies do uzyskania dostępu do całej zagnieżdżonej tablicy w pierwszym elemencie tablicy najwyższego poziomu, a następnie używa funkcji print_r() do wydrukowania zawartości tablicy.

Organizacja iteracji po wszystkich elementach tablicy wielowymiarowej w pętli

Podobnie jak w przypadku zwykłej tablicy jednowymiarowej, możesz użyć foreach do iteracji po wszystkich elementach tablicy wielowymiarowej. Musimy utworzyć zagnieżdżoną pętlę foreach, czyli jedną pętlę wewnątrz drugiej:

  1. Zewnętrzna pętla pobiera każdy element tablicy najwyższego poziomu.
  2. Dla każdego elementu najwyższego poziomu wewnętrzna pętla iteruje po zagnieżdżonej tablicy i tak dalej.

Przykład tworzy tablicę 2D z informacjami o filmach, a następnie organizuje pętlę przez elementy tablicy, aby wyświetlić informacje na stronie:

$ movies = array (array ("title" => "Tylne okno", "director" => "Alfred Hitchcock", "year" => 1954), array ("title" => "Full Metal Jacket", "director "=>" Stanley Kubrick "," rok "=> 1987), tablica (" tytuł "=>" Wredne ulice "," reżyser "=>" Martin Scorsese "," rok "=> 1973)); foreach ($ filmy jako $ film) (echo "

"; foreach ($ film jako $ klucz => $ wartość) (echo"
$ klucz
$ wartość
";) Echo"
"; }

Wykonanie tego kodu da następujący wynik:

Tytuł Reżyser tylnej szyby Alfred Hitchcock rok 1954 tytuł Full Metal Jacket reżyser Stanley Kubrick rok 1987 tytuł Mean Streets reżyser Martin Scorsese rok 1973

Streszczenie

Tablice wielowymiarowe nadają się do przechowywania dowolnych danych, na przykład do przechowywania wielu rekordów bazy danych lub wartości do wyświetlania w tabelach. Korzystanie z tablic wielowymiarowych może zwiększyć poziom funkcjonalności skryptów PHP.

Lekcja rozważy możliwości pracy z tablicami w php, deklarowanie tablicy, rodzaje tablic: wielowymiarowe i asocjacyjne

  1. Tablice z indeksami liczbowymi
  2. $ owoce = "jabłko"; $ owoce = "gruszka"; $ owoce = "pomarańczowy"; $ owoce = "morela";

    Ten wariant inicjalizacji tablicy praktycznie nie jest obecnie używany. Stosowany jest następujący wariant pracy z tablicami:

  3. Tablica asocjacyjna
  4. Ten wariant tworzenia tablicy wykorzystuje obiekt tablicy:

    $ owoce = tablica (1 => "jabłko", 2 => "gruszka", 3 => "pomarańcza", 4 => "morela"); // Od PHP 5.4 $ owoce = tablica [1 => "jabłko", 2 => "gruszka", 3 => "pomarańcza", 4 => "morela"];

    Dostęp do elementów tablicy

    1 2 3 4 5 6 7 8 $ owoce [0] = "jabłko"; $ owoce [1] = "gruszka"; $ owoce [2] = "pomarańczowy"; $ owoce [3] = "morela"; Echo "Pierwszym elementem tablicy jest"... $ owoce [0]. "
    "; Echo "Drugim elementem tablicy jest"... $ owoce [1]. "
    "; Echo "Trzecim elementem tablicy jest"... $ owoce [2]. "
    " ;

    $ owoce = "jabłko"; $ owoce = "gruszka"; $ owoce = "pomarańczowy"; $ owoce = "morela"; echo "Pierwszym elementem tablicy jest". $ owoce.”
    "; echo" Drugim elementem tablicy jest ". $ owoce."
    "; echo" Trzecim elementem tablicy jest ". $ owoce."
    ";

    Rezultatem wykonania programu będzie:

    Ważny: Indeks elementu w tablicy asocjacyjnej nie może być liczbą, ale słowem (typ strunowy)

    Rozważmy przykład:

    Przykład: Utwórz tablicę student z wartościami imion, nazwisk i wieku uczniów. Wyświetl wartości elementów tablicy

    $ student = tablica ("Imię" => Jan, "Nazwisko" => Kowalski, "Wiek" => 20); echo "nazwa użytkownika". $ student ["Imię"]. "


    ";

    $ student ["Imię"] = "Jan"; $ student ["Nazwisko"] = "Kowalski"; $ student ["Wiek"] = 20; echo "nazwa użytkownika". $ student ["Imię"]. "
    "; echo" nazwisko użytkownika ". $ student [" Nazwisko "]."
    "; echo" wiek użytkownika ". $ student [" Wiek "]."
    ";

    Wynik:

    Ważny: Klucze ciągów (indeksy) muszą być zawsze cytowane

    Bezkluczowe tablice indeksowane:

    Należy również wziąć pod uwagę, że indeksy w tablicy nie muszą być w ogóle zapisywane podczas inicjalizacji tablicy wartościami. Następnie tworzymy tzw kolekcja tablic(obiekt kolekcji):

    $ student = tablica ("Jan", "Kowalski", 20);

    $ student = tablica ("Jan", "Kowalski", 20);

    W takim przypadku tłumacz sam przypisze im indeksy liczbowe, zaczynając od 0

    Przykład konwersje typów i przepisywanie elementów.
    Zwróć uwagę na użycie procedury var_dump()

    1 2 3 4 5 6 7 8 9 "a", "1" => "b", 2 => "c", 2 => "d",); var_dump ($ moja_tablica); ?>

    "a", "1" => "b", 2 => "c", 2 => "d",); var_dump ($ moja_tablica); ?>

    Wynik:

    Tablica (3) (=> ciąg (1) „a” => ciąg (1) „b” => ciąg (1) „d”)

    Przykład posługiwać się tablica wielowymiarowa i organizując dostęp do jego elementów

    1 2 3 4 5 6 7 8 9 10 11 12 "1", 2 => 2, "wiele" => tablica ("1_1" => "1_1")); var_dump ($ array_odnom ["pierwszy"]); var_dump ($ array_odnom [2]); var_dump ($ array_odnom ["wiele"] ["1_1"]); ?>

    "1", 2 => 2, "wiele" => tablica ("1_1" => "1_1")); var_dump ($ array_odnom ["pierwszy"]); var_dump ($ array_odnom); var_dump ($ array_odnom ["wiele"] ["1_1"]); ?>

    Wynik:

    String (1) "1" int (2) string (3) "1_1"

    Przykład: utwórz dwuwymiarową tablicę o wymiarach 3 x 2. Wypełnij ją wartościami dla pierwszego wiersza: „1_1”, „1_2”, „1_3”; dla drugiego wiersza: "2_1", "2_2", "2_3". Wyświetl pierwszy element tablicy


    Występ:
    1 2 3 4 5 6 7 8 9 10 11 12 $ array_odnom = tablica (1 => tablica (1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => tablica (1 => "2_1", 2 => "2_2" , 3 => "2_3")),); echo $ tablica_odnom [1] [1];

    $ array_odnom = tablica (1 => tablica (1 => "1_1", 2 => "1_2", 3 => "1_3"), 2 => tablica (1 => "2_1", 2 => "2_2" , 3 => "2_3")),); echo $ array_odnom;

    Praca php2_1: utwórz dwuwymiarową tablicę 3 x 3 - lewy górny róg tabliczki mnożenia pitagorejskiego (1, 2, 3; 4, 6, 8 ...)



    Praca laboratoryjna:
    Załóżmy, że masz jakąś reklamę i kilka różnych osób, które muszą ją wysłać. W tym celu tworzysz szablon z treścią reklamy, wewnątrz którego znajduje się szereg zmieniających się parametrów: tablica imion osób oraz tablica zdarzeń. Wyświetl na ekranie jeden wariant ostatecznej reklamy. Aby określić tablice, użyj również tablicy asocjacyjnej.

    Użyj szablonu reklamy i kieruj się kolorami:

    Czerwony - tablice.
    Brown to zmienna liczbowa.
    Niebieski jest stałą.

    Drogi Iwanie Iwanowiczu!
    Zapraszamy do Dzień Otwarty.
    Data wydarzenia: 12 maja.
    Pozdrawiam Wasilij.


    Uzupełnij kod:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // stała deklaracja zdefiniuj ("ZNAK", „Pozdrawiam Wasia”) ; // tablica nazw odbiorców$ nazwy = tablica (...); // tablica zdarzeń$ zdarzenia = tablica ("op_doors" => "Dzień Otwarty", "vistavka" => "wystawa", ...); $ str = "Kochanie, $ imiona!
    "
    ; $ str. = ...; $ str. = ...; Echo ...;

    // stała deklaracja define ("ZNAK", "Z poważaniem, Wasia"); // tablica nazw odbiorców $ names = tablica (...); // tablica zdarzeń $ event = array ("op_doors" => "dzień otwarty", "vistavka" => "wystawa", ...); $ str = "Kochanie, $ imiona!
    "; $ str. = ...; $ str. = ...; echo ...;

Ostatnia aktualizacja: 1.11.2015

Tablice są przeznaczone do przechowywania kolekcji danych lub elementów. Każdy element tablicy ma swój własny unikalny klucz i wartość. Zapiszmy więc listę modeli telefonów do tablicy:

"; ?>

Tworzy to tablicę telefonów $ z czterema elementami. Każdy element w tablicy jest parą klucz-wartość. Tak więc pierwszy element $phones = "Nokia N9" ma klucz - liczbę 0, a wartość - ciąg "Nokia N9". W takich tablicach klucze numeryczne nazywane są również indeksami.

Korzystając z funkcji count(), możesz sprawdzić liczbę elementów w tablicy. A dzięki temu, że klucze są w kolejności od 0 do 3, a znając wielkość tablicy można wyświetlić elementy tablic w pętli for.

Dla jasności relacji między kluczami a wartościami elementów wyświetlamy tablicę za pomocą funkcji print_r:

Print_r (telefony $);

Otrzymujemy następujący wynik:

Tablica (=> Nokia N9 => Samsung Galaxy ACE II => Sony Xperia Z3 => Samsung Galaxy III)

To tworzenie tablicy będzie również równoważne z następującym:

"; ?>

Jeśli nie określono klucza pozycji, PHP używa liczb jako kluczy. W tym przypadku numeracja kluczy zaczyna się od zera, a każdy nowy klucz jest zwiększany o jeden.

Znając klucz elementu w tablicy, możemy odwołać się do tego elementu, uzyskać lub zmienić jego wartość:

// pobierz element klawiszem 1 $ myPhone = $ telefony; echo „$ myPhone
"; // przypisanie nowej wartości $ telefony =" Samsung X650 "; echo" $ telefony
";

Ale nie tylko liczby całkowite, ale także łańcuchy mogą być używane jako klucze:

Takie tablice są również nazywane asocjacyjny.

Operator tablicy

Jeden ze sposobów tworzenia tablicy został omówiony powyżej. Ale jest jeszcze jeden, który wiąże się z użyciem operatora tablicy ().

Operator array() przyjmuje zestaw elementów. Klucze również nie są tutaj wyraźnie określone. Dlatego PHP automatycznie ponumeruje elementy od zera. Ale możemy również określić klucz dla każdego elementu:

"iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); echo $ telefony ["samsumg"]; ?>

Operacja => umożliwia dopasowanie klucza do określonej wartości.

Pętla przez tablice asocjacyjne

Powyżej widzieliśmy, jak za pomocą pętli for wyświetlić wszystkie elementy tablicy, w której klucze są określone kolejno liczbami od 0 do 3. Nie działa to jednak w przypadku tablic asocjacyjnych. A dla nich w PHP jest specjalny rodzaj pętli - foreach... jako:

"iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach ($ telefony jako $ przedmiot) echo "$ przedmiot
"; ?>

W pętli foreach wszystkie elementy są sekwencyjnie pobierane z tablicy, a ich wartość umieszczana jest w zmiennej określonej po słowie kluczowym as. W tym przypadku wszystkie cztery wartości z tablicy $phones są kolejno umieszczane w zmiennej pozycji $. Po pobraniu ostatniego elementu z tablicy pętla się kończy.

Pętla foreach pozwala na pobranie nie tylko wartości, ale także kluczy elementów:

"iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach (telefony w $ jako klucz w $ => wartość w $) echo "Klucz $ => wartość w $
"; ?>

Tutaj, podczas iteracji po elementach pętli, klucz elementu zostanie przekazany do zmiennej kluczowej $, a jego wartość do zmiennej wartości $.

Alternatywą dla pętli foreach jest użycie listy i każdej funkcji:

"iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); while (lista (klucz $, wartość $) = każdy (telefony $)) echo "Klucz $ => wartość $
"; ?>

Pętla while będzie działać, dopóki każda z funkcji nie zwróci wartości false. Każda funkcja przechodzi w pętlę przez wszystkie elementy tablicy $phones i pobiera ją jako tablicę zawierającą klucz i wartość elementu. Następnie ta tablica jest przekazywana do funkcji list i przypisuje wartości tablicy do zmiennych znajdujących się w nawiasach. Kiedy każda funkcja zakończy iterację po elementach tablicy $phones, zwróci false i pętla while zakończy się.

Tablice wielowymiarowe

W poprzednich przykładach brano pod uwagę tylko tablice jednowymiarowe, w których wartości elementów reprezentowały liczby, łańcuchy. Ale w PHP tablice mogą być również wielowymiarowe, to znaczy, gdy element tablicy sam jest tablicą. Na przykład stwórzmy tablicę wielowymiarową:

array ("iPhone5", "iPhone5s", "iPhone6"), "samsumg" => array ("Samsung Galaxy III", "Samsung Galaxy ACE II"), "nokia" => array ("Nokia N9", "Nokia Lumia 930 ")," sony "=> macierz (" Sony XPeria Z3 "," Xperia Z3 Dual "," Xperia T2 Ultra ")); foreach ($ telefony jako $ marka => $ przedmioty) (echo "

$ marka

"; Echo"
    "; foreach ($ elementy jako $ klucz => $ wartość) (echo"
  • $ wartość
  • ";) Echo"
"; } ?>

A podczas wyprowadzania otrzymamy 4 listy:

Aby odwołać się do danej pozycji, należy również podać klucze w nawiasach kwadratowych. Na przykład odwołajmy się do pierwszego elementu w pierwszej tablicy. Ponieważ kluczem pierwszej tablicy jest „jabłko”, a kluczem pierwszego elementu pierwszej tablicy jest liczba 0 (ponieważ nie określiliśmy jawnie kluczy):

Telefony Echo $ ["jabłko"];

Podobnie możesz uzyskać drugi element trzeciej tablicy:

Telefony Echo $ ["nokia"];

Załóżmy, że zagnieżdżone tablice reprezentują również tablice asocjacyjne:

array ("apple" => "iPhone5", "samsumg" => "Samsung Galaxy III", "nokia" => "Nokia N9"), "tablety" => array ("lenovo" => "Lenovo IdeaTab A3500" , "samsung" => "Samsung Galaxy Tab 4", "apple" => "Apple iPad Air")); foreach ($technika jak $tovar => $elementy) (echo "

$ tovar

"; Echo"
    "; foreach ($ elementy jako $ klucz => $ wartość) (echo"
  • $ klucz: $ wartość
  • ";) Echo"
";) // przypisz inną wartość do jednego z elementów $ technics [" telefony "] [" nokia "] =" Nokia Lumnia 930 "; // wyświetl tę wartość echo $ technics [" telefony "] [" nokia " ];? >