Pridajte do php dvojrozmerné pole. Polia v PHP

1. Čo je to pole PHP?
2. Príklad poľa PHP?
3. Jednorozmerné pole (vektor)
- index
- asociatívny
4. Dvojrozmerné pole (pole v poli, matica)
5. Funkcie pre prácu s poľami (pole v poli, matica)

Túto tému by som chcel začať odriekanými príkladmi. Povedzme, že nad niektorými uvažujeme ľudský... On má meno, priezvisko, adresa, telefónne číslo, pohlavie, výška, farba očí atď. Informácie o všetkých týchto bodoch je možné priradiť k množstvu údajov o osobe.

Pole môže byť iného typu bez akýchkoľvek konkrétnych bodov. Bude len téma. Povedzme si to webové programovanie... A ako prvky budú jazyky- Html, CSS, JavaScript, PHP, MySQL... Existuje celkom 5 prvkov.

Na základe posledného príkladu predpokladajme pole:

webové programovanie
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL

Teraz sa pozrime na tento príklad a analyzujeme základné pojmy.

Pole v PHP Je to súbor sekvenčne umiestnených homogénnych údajov súvisiacich s bežnou témou, ktorých počet prvkov je pevný.

Pole v tomto prípade sa bude volať webové programovanie.

Každý prvok má svoju poradovú pozíciu, identifikátor.
Register(kľúč poľa) - buď poradové číslo, alebo textová hodnota, pomocou ktorej je možné prvok identifikovať.

Indexy vo vyššie uvedenom príklade by boli číselné hodnoty od 1 do 5... Pri prístupe k indexu 2 uvidíme CSS.

Príklad poľa PHP

Teraz sa pozrime na vyššie uvedený príklad v syntaxi PHP, nie v ruštine. Povedzme, že pole bude pomenované kratšie - web... Hranaté zátvorky vložia register.

Uvažujme jednoduchý príklad poľa, kde hodnotou indexov budú číselné hodnoty a pole vytvoríme tak, ako keby sme premenným priraďovali hodnoty.

$ web = 'HTML';
$ web = 'CSS';
$ web = 'JavaScript';
$ web = 'PHP';
$ web = 'MySQL';

$ web; // táto premenná obsahuje pole s 5 prvkami

// na zobrazenie jedného z prvkov poľa stačí zadať index v poli
echo $ web; // vydá PHP

Jednorozmerné pole

INDEXOVÁ POLE

Vyššie sme sa pri webovom programovaní pozreli na príklad jednorozmerného poľa.
Takto sa vytvára len zriedka. Pomerne jasne ukazuje štruktúru poľa. Častejšie sa uchýlia k inej metóde.

$ web = pole („HTML“, „CSS“, „JavaScript“, „PHP“, „MySQL“);
echo $ web; // vydá 'HTML'
echo $ web; // vytlačí „JavaScript“
echo $ web; // vytlačí „PHP“

Ak chcete nastaviť hodnoty indexu, musíte ich zadať nasledovne. Podpísať => je ukazovateľ na priradenie indexu k hodnote alebo naopak k hodnote indexu.

$ web = pole (1 => 'HTML', 2 => 'CSS', 3 => 'JavaScript', 4 => 'PHP', 5 => 'MySQL');
echo $ web; // HTML
echo $ web; // CSS
echo $ web; // PHP
V tomto prípade začína počítanie od 1. Premenná s indexom 0 je preto prázdna.

V nasledujúcom príklade nebudeme špecifikovať index.

$ day = 'pondelok'; // index 0
$ day = 'utorok'; // 1
$ day = 'streda'; // 2
$ day = 'štvrtok'; // 3
$ day = 'piatok'; // 4
Môžete vysledovať, že sekvenčné plnenie sa vyskytuje od začiatku.

Asociálne pole

Často existuje potreba vytvoriť doslovný index pre prvok poľa. Ako som už uviedol vyššie, takýto register musí pozostávať z latinských písmen a názov musí byť uzavretý v úvodzovkách. Zamyslite sa nad príkladom osoby.

$ user ['nick'] = 'Logika';
$ user ['name'] = 'Paul';
$ user ['age'] = '25';
$ user ['sex'] = 'Muž';

$ užívateľ; // premenná $ user obsahuje pole so 4 prvkami s písmenovými indexmi

// zobrazenie prvku poľa s uvedením jeho doslovného indexu
echo $ web ['meno']; // vytlačí „Paul“
Ako vidíte, všetko je veľmi jednoduché. Uvádza sa iba hodnota indexu.

Dvojrozmerné pole

Ak ste premeškali prvú časť s Jednorozmerným poľom, tak vrelo odporúčam prečítať si.
Jednoducho povedané, je to pole v poli. To znamená, že prvky veľkého poľa sú odlišné. Takéto polia veľmi spomaľujú prácu skriptu a načítavajú pamäť RAM, takže na rýchle spracovanie takýchto skupín údajov boli vytvorené databázy (čo je databáza?), O tom však neskôr. Pozrime sa na príklad dvojrozmerného poľa.

// pole s názvami Časti sveta
$ m = pole („Európa“, „Ázia“, „Afrika“, „Amerika“, „Austrália a Oceánia“);

// pole s názvami krajín
$ s = pole („Rusko“, „Ukrajina“, „Bielorusko“, „Kazachstan“);

// pole s názvami Capitals
$ с = pole („Moskva“, „Kyjev“, „Minsk“, „Astana“);

// vytvorenie 2D poľa geografie
$ geography = pole ($ m, $ s, $ c);
?>
V zahrnutých poliach, ako ste si všimli, môže byť iný počet prvkov. Z časti o jednorozmerných poliach vyplývalo, že každý prvok poľa môže mať index. Priraďte teda pre každé zahrnuté pole inú hodnotu.

Aby sme to urobili, rozbalíme posledný riadok a napíšeme ho nasledovne.

$ geography = pole („Časti sveta“ => $ m, „Krajiny“ => $ s, „Capitals“ => $ s);

Funkcie pre prácu s poliami php

Pre každý- cyklická funkcia na prácu s poľami, v ktorej sa počet slučiek rovná počtu prvkov poľa.

Má nasledujúcu formu.

PHP kód

foreach (pole ako $ key => $ hodnota)
príkazy;
Hneď príklad práce

// vytvorte pole so známym IT
$ names ["Ritchie"] = "Dennis";
$ names ["Thompson"] = "Ken";
$ names ["Gates"] = "Bill";
$ names ["Jobs"] = "Steve";

foreach ($ names as $ key => $ value) (
echo „$ value $ key“;
}
?>
Zobrazí sa skript

Dennis Ritchie
Ken Thompson
Bill Gates
Steve Jobs
Gróf- funkcia, ktorá vracia počet prvkov v poli.

počet ozvien ($ mená); // v našom prípade s IT vráti hodnotu 4
Zoradiť- funkcia, ktorá triedi prvky poľa. Pohodlné pre hodnoty číselného indexu.
Arsort- funkcia, ktorá triedi prvky poľa v opačnom poradí.

triediť ($ names); // triedi podľa poradia. Je vhodné, ak v indexových číslach
arsort ($ names); // zoradenie v opačnom poradí. To znamená, že podľa indexov budú prvky v poradí 3, 2, 1, 0
Zrušené- funkcia, ktorá odstráni prvok poľa.

unset ($ massiv); // odstránenie prvku poľa s indexom 2
unset ($ massiv); // odstránenie celého poľa
Array_search- funkcia vyhľadávania polí.

Lekcia 7. Polia v PHP

Má dva argumenty. Jednoducho povedané, má vidlicu array_search („čo“, kde)

$ animals = 'pes';
$ animals = 'mačka';
$ animals = 'vták';
echo array_search („mačka“, $ zvieratá); // zobrazí index prvku - číslo 2
Shuffle- funkcia, ktorá zamieša kľúče hodnôt polí.

shuffle ($ zvieratá); // usporiadanie položiek v náhodnom poradí
Ďakujem za pozornosť!

Predchádzajúci článok
Lekcia 6. Slučky v PHP Dalsi clanok
Lekcia 8. Pripojenie súboru v PHP. Zahrnúť a požadovať

Pripomienky k článku (vk.com)

Vytvorí prázdne pole.

Hodnoty môžete do poľa odoslať neskôr, napríklad:

V súčasnej dobe $ myArray obsahuje „strom“, „dom“ a „pes“. Každý z vyššie uvedených príkazov sa pridá do poľa a zachová prvky, ktoré tam už boli.

Pochádzajúc z iných jazykov, tento spôsob pridávania poľa sa mi zdal zvláštny. Čakal som, že urobím niečo ako $ myArray + = „pes“ alebo niečo také ...

alebo možno metóda „add ()“, ako napríklad kolekcie Visual Basic. Táto jednoduchá syntax doplnku je však krátka a pohodlná.

Na odstránenie položiek by ste skutočne mali používať funkciu unset ():

... odstráni "dom" z poľa (polia sú založené na nule).

Základy poľa PHP

... zničí celé pole.

Aby bolo jasné, syntax prázdnych hranatých zátvoriek na pridanie do poľa je len spôsob, ako povedať PHP, aby automaticky priraďoval indexy ku každej hodnote, a nie priraďovať indexy. Pokrýva, PHP v skutočnosti robí toto:

Indexy môžete priradiť sami, ak chcete, a môžete použiť akékoľvek požadované čísla. Niektorým prvkom môžete tiež priradiť indexové čísla, nie iným. Ak to urobíte, PHP doplní chýbajúce čísla indexov, pričom sa zvýši od najväčšieho čísla indexu, ktoré je priradené pri jeho príchode.

Ak to teda urobíte:

... elementu dog bude priradený index číslo 21. PHP nevykonáva inteligentné porovnávanie vzorov na postupné priraďovanie indexov, takže nevie, že by ste psovi mohli priradiť index 30. “ Na zadanie vzoru prírastku pre pole môžete použiť ďalšie funkcie. Nebudem to rozoberať, ale všetko je to v dokumentoch PHP.

V niektorých iných jazykoch (ako AS3) bolo poznamenané, že inicializácia nového poľa je rýchlejšia, ak sa vykonáva ako na účely vytvárania objektov a inštancionalizácie, nie ako také. Zaujímalo by ma, či existujú nejaké ekvivalencie v PHP?

Polia v PHP. Práca s poľami v PHP.

Tento článok sa zaoberá prácou s poľami v PHP (základy). Polia v PHP sú dátovým typom, ktorý vám umožňuje uložiť viac premenných do jednej.

Tu je jeden jednoduchý príklad:

Vo vyššie uvedenom príklade je $ products pole, kde sme uložili niekoľko rôznych produktov. Potom sme odvodili všetky tieto produkty s odkazom na každý prostredníctvom „indexov“ (kľúče): 0, 1 a 2.

Jednotlivé hodnoty môžu byť samozrejme tiež uložené do samostatných premenných, napríklad takto:

To je samozrejme dobré, ale predstavme si, že by sme zrazu potrebovali opakovať všetky tieto prvky. Ako tu byť? Chcete napísať kód pre každú premennú? Je to dlhé a nepohodlné. Riešením sú polia.
Pomocou slučiek v každej iterácii (kroku) môžeme získať prístup k ďalšiemu prvku vďaka indexom (kľúčom).

Vytvorenie poľa v PHP.

Nie je potrebné deklarovať pole v php. Pole môžeme vytvoriť pomocou funkcie array ():

V tomto prípade sme vytvorili prázdne pole. Ak zadáme niekoľko hodnôt v zátvorkách oddelených čiarkami, vyplníme toto pole niekoľkými prvkami:

Typy polí.

1. „Indexované“ polia alebo „automatické polia“. Vyššie sme už uviedli príklady takéhoto poľa. Zvláštnosťou týchto polí je, že majú číselné indexy, ktoré sa vytvárajú automaticky („za behu“). Položky sú očíslované od 0.

Ako určiť dĺžku (veľkosť) indexovaného poľa.

Použitie polí

Používame funkciu počítať ():

Vyčíslenie prvkov. Pomocou konštrukcie môžete iterovať všetky prvky automobilu pre alebo pre každý:

Na pridanie nového prvku do poľa (zápis do poľa) stačí vykonať nasledujúci riadok:

Iterácia cez všetky prvky asociatívneho poľa sa vykonáva nasledovne:

3. Viacrozmerné polia obsahujú ako prvky ďalšie polia:

Môžeme vytvoriť aj 3D pole:

výstup poľa v PHP. Pomocou funkcie môžete zobraziť akékoľvek pole print_r (), napríklad:

V takom prípade pri vymazaní prvku zostanú indexy ostatných prvkov nezmenené.

Funkcie pre prácu s poľami:

Triedenie polí
array_search - vyhľadá hodnotu v poli

Často musíte prejsť všetkými prvkami poľa PHP a s každým prvkom vykonať nejaký druh operácie. Každú hodnotu môžete napríklad odoslať do tabuľky HTML alebo každému prvku môžete priradiť novú hodnotu.

V tejto lekcii sa pozrieme na konštrukciu foreach pri prechádzaní indexovanými a priradenými poľami.

Zopakujte hodnoty prvkov

Najjednoduchší prípad použitia foreach je pri cyklovaní hodnôt v indexovanom poli. Základná syntax:

Foreach ($ pole ako hodnota $) (// Urobte niečo s hodnotou $)) // Tu sa kód spustí po ukončení cyklu

Nasledujúci skript napríklad prechádza zoznamom riaditeľov v indexovanom poli a vytlačí názov každého z nich:

$ režiséri = pole („Alfred Hitchcock“, „Stanley Kubrick“, „Martin Scorsese“, „Fritz Lang“); foreach ($ directors ako $ director) (echo $ director. "
"; }

Vyššie uvedený kód vygeneruje:

Alfred Hitchcock Stanley Kubrick Martin Scorsese Fritz Lang

Zopakujte si kľúče a hodnoty

Čo s pridruženými poľami? Pri použití tohto typu poľa často potrebujete mať prístup ku kľúču každého prvku a k jeho hodnote. Foreach konštrukt má spôsob, ako splniť túto úlohu:

Foreach ($ array as $ key => $ value) (// Urobte niečo s $ key a/ alebo $ value) // Tu sa kód vykoná po ukončení slučky

Príklad organizovania slučky prostredníctvom priradeného poľa s informáciami o filmoch zobrazuje kľúč každého prvku a jeho hodnotu v zozname definícií HTML:

$ film = pole ("title" => "Zadné okno", "režisér" => "Alfred Hitchcock", "rok" => 1954, "minúty" => 112); ozvena "

"; foreach ($ film ako $ key => $ hodnota) (ozvena"
$ kľúč:
"; ozvena"
hodnota $
";) ozvena"
";

Tento skript sa spustí po spustení:

Názov: Režisér zadného okna: Alfred Hitchcock rok: 1954 minút: 112

Zmena hodnoty prvku

Ako je to však so zmenou hodnoty prvku počas cyklu? Môžete skúsiť kód takto:

Foreach ($ myArray ako hodnota $) ($ hodnota = 123;)

Ak ho však spustíte na vykonanie, potom zistíte, že hodnoty v poli nemeň... Dôvodom je, že foreach pracuje s kópia hodnoty poľa, nie pôvodné. Pôvodné pole tak zostane nedotknuté.

Ak chcete zmeniť hodnoty poľa, potrebujete odkaz na hodnote. Ak to chcete urobiť, v premennej konštrukcii dajte pred hodnotu premennú znak &:

Foreach ($ myArray ako & $ hodnota) ($ hodnota = 123;)

Nasledujúci skript napríklad prechádza všetkými prvkami (meno riaditeľa) v poli $ directors a používa funkciu PHP explode () a konštrukciu na výmenu mien a priezvisk:

$ režiséri = pole („Alfred Hitchcock“, „Stanley Kubrick“, „Martin Scorsese“, „Fritz Lang“); // Zmena formátu názvu pre každý prvok foreach ($ directors as & $ director) (list ($ firstName, $ lastName) = explode ("", $ director); $ director = "$ lastName, $ firstName";) unset ($ riaditeľ); // Vytlačte konečný výsledok foreach ($ directors as $ director) (echo $ director. "
"; }

Skript vydá:

Hitchcock, Alfred Kubrick, Stanley Scorsese, Martin Lang, Fritz

Všimnite si toho, že skript volá funkciu unset (), aby po dokončení prvej slučky odstránila premennú $ director. Toto je osvedčený postup, ak plánujete premennú použiť neskôr v skripte v inom kontexte.

Ak odkaz neodstránite, existuje riziko ďalšieho spustenia kódu náhodného odkazu na posledný prvok v poli („Lang, Fritz“), ak budete naďalej používať premennú $ director, ktorá povedie k nepredvídaným následkom!

Zhrnutie

V tomto tutoriále sme sa pozreli na to, ako použiť konštrukciu PHP foreach na to, aby sme mohli prechádzať prvkami poľa. Uvažovalo sa o nasledujúcich problémoch:

  • Ako prechádzať prvkami poľa
  • Ako získať prístup k kľúču a hodnote každej položky
  • Ako použiť referenciu na zmenu hodnôt pri prechádzaní slučkou

(pole v poli, matica)
5. Funkcie pre prácu s poľami (pole v poli, matica)

Čo je to pole PHP?

Túto tému by som chcel začať odriekanými príkladmi. Povedzme, že nad niektorými uvažujeme ľudský... On má meno, priezvisko, adresa, telefónne číslo, pohlavie, výška, farba očí atď. Informácie o všetkých týchto bodoch je možné priradiť k množstvu údajov o osobe.

Pole môže byť iného typu bez akýchkoľvek konkrétnych bodov. Bude len téma. Povedzme si to webové programovanie... A ako prvky budú jazyky- Html, CSS, JavaScript, PHP, MySQL... Existuje celkom 5 prvkov.

Na základe posledného príkladu predpokladajme pole:

webové programovanie
1. HTML
2. CSS
3. JavaScript
4. PHP
5. MySQL

Teraz sa pozrime na tento príklad a analyzujeme základné pojmy.

Pole v PHP je množina sekvenčne umiestnených homogénnych údajov súvisiacich so spoločnou témou, ktorých počet prvkov je pevný.

Pole v tomto prípade sa bude volať webové programovanie.

Každý prvok má svoju poradovú pozíciu, identifikátor.
Register(kľúč poľa) - buď poradové číslo, alebo textová hodnota, pomocou ktorej je možné prvok identifikovať.

Indexy vo vyššie uvedenom príklade by boli číselné hodnoty od 1 do 5... Pri prístupe k indexu 2 uvidíme CSS.

Príklad poľa PHP

Teraz sa pozrime na vyššie uvedený príklad v syntaxi PHP, nie v ruštine. Povedzme, že pole bude pomenované kratšie - web... Hranaté zátvorky vložia register.
Pozrime sa na jednoduchý príklad poľa, kde hodnotou indexov budú číselné hodnoty a pole vytvoríme tak, ako keby sme hodnotám priraďovali hodnoty.

$ web = "HTML";
$ web = "CSS";
$ web = "JavaScript";
$ web = "PHP";
$ web = "MySQL";

$ web; // táto premenná obsahuje pole s 5 prvkami

// na zobrazenie jedného z prvkov poľa stačí zadať index v poli
echo $ web; // vydá PHP

Jednorozmerné pole

INDEXOVÁ POLE

Vyššie sme sa pri webovom programovaní pozreli na príklad jednorozmerného poľa.
Takto sa vytvára len zriedka. Pomerne jasne ukazuje štruktúru poľa. Častejšie sa uchýlia k inej metóde.

$ web = pole („HTML“, „CSS“, „JavaScript“, „PHP“, „MySQL“);
echo $ web; // vydá "HTML"
echo $ web; // vydá "JavaScript"
echo $ web; // vytlačí "PHP"

Ak chcete nastaviť hodnoty indexu, musíte ich zadať nasledovne. Podpísať => je ukazovateľ na priradenie indexu k hodnote alebo naopak k hodnote indexu.

$ web = pole (1 => "HTML", 2 => "CSS", 3 => "JavaScript", 4 => "PHP", 5 => "MySQL");
echo $ web; // HTML
echo $ web; // CSS
echo $ web; // PHP
V tomto prípade začína počítanie od 1. Premenná s indexom 0 je preto prázdna.

V nasledujúcom príklade nebudeme špecifikovať index.

$ day = "pondelok"; // index 0
$ day = "utorok"; // 1
$ day = "streda"; // 2
$ day = "štvrtok"; // 3
$ day = "piatok"; // 4
Môžete vysledovať, že sekvenčné plnenie sa vyskytuje od začiatku.

Asociálne pole

Často existuje potreba vytvoriť doslovný index pre prvok poľa. Ako som už uviedol vyššie, takýto register musí pozostávať z latinských písmen a názov musí byť uzavretý v úvodzovkách. Zamyslite sa nad príkladom osoby.

$ user ["nick"] = "Logika";
$ user ["name"] = "Paul";
$ user ["age"] = "25";
$ user ["sex"] = "Muž";

$ užívateľ; // premenná $ user obsahuje pole so 4 prvkami s písmenovými indexmi

// zobrazenie prvku poľa s uvedením jeho doslovného indexu
echo $ web ["meno"]; // vytlačí „Pavel“
Ako vidíte, všetko je veľmi jednoduché. Uvádza sa iba hodnota indexu.

Dvojrozmerné pole

Ak vám unikla prvá časť s Jednorozmerným poľom, vrelo odporúčam prečítať si.
Jednoducho povedané, je to pole v poli. To znamená, že prvky veľkého poľa sú odlišné. Takéto polia veľmi spomaľujú prácu skriptu a načítavajú pamäť RAM, takže na rýchle spracovanie takýchto skupín údajov boli vytvorené databázy (čo je databáza?), O tom však neskôr. Pozrime sa na príklad dvojrozmerného poľa.

// pole s názvami Časti sveta
$ m = pole („Európa“, „Ázia“, „Afrika“, „Amerika“, „Austrália a Oceánia“);

// pole s názvami krajín
$ s = pole („Rusko“, „Ukrajina“, „Bielorusko“, „Kazachstan“);

// pole s názvami Capitals
$ с = pole („Moskva“, „Kyjev“, „Minsk“, „Astana“);

// vytvorenie 2D poľa geografie
$ geography = pole ($ m, $ s, $ c);
?>
V zahrnutých poliach, ako ste si všimli, môže byť iný počet prvkov. Z časti o jednorozmerných poliach vyplývalo, že každý prvok poľa môže mať index. Priraďte teda pre každé zahrnuté pole inú hodnotu.

Aby sme to urobili, rozbalíme posledný riadok a napíšeme ho nasledovne.

$ geography = pole („Časti sveta“ => $ m, „Krajiny“ => $ s, „Capitals“ => $ c);

Funkcie pre prácu s poliami php

Pre každý- cyklická funkcia na prácu s poľami, v ktorej sa počet slučiek rovná počtu prvkov poľa.

Má nasledujúcu formu. PHP kód

Foreach (pole ako $ key => hodnota $)
príkazy;
Hneď príklad práce

// vytvorte pole so známym IT
$ names ["Ritchie"] = "Dennis";
$ names ["Thompson"] = "Ken";
$ names ["Gates"] = "Bill";
$ names ["Jobs"] = "Steve";

Foreach ($ names as $ key => $ value) (
echo „$ value $ key“;
}
?>
Zobrazí sa skript

Dennis Ritchie
Ken Thompson
Bill Gates
Steve Jobs
Gróf- funkcia, ktorá vracia počet prvkov v poli.

Počet ozvien ($ mená); // v našom prípade s IT vráti hodnotu 4
Zoradiť- funkcia, ktorá triedi prvky poľa. Pohodlné pre hodnoty číselného indexu.
Arsort- funkcia, ktorá triedi prvky poľa v opačnom poradí.

Zoradiť ($ mená); // triedi podľa poradia. Je vhodné, ak v indexových číslach
arsort ($ names); // zoradenie v opačnom poradí. To znamená, že podľa indexov budú prvky v poradí 3, 2, 1, 0
Zrušené- funkcia, ktorá odstráni prvok poľa.

Unset ($ massiv); // odstránenie prvku poľa s indexom 2
unset ($ massiv); // odstránenie celého poľa
Array_search- funkcia vyhľadávania polí. Má dva argumenty. Jednoducho povedané, má vidlicu array_search („čo“, kde)

$ animals = "pes";
$ animals = "mačka";
$ animals = "vták";
echo array_search ("mačka", $ zvieratá); // zobrazí index prvku - číslo 2
Shuffle- funkcia, ktorá zamieša kľúče hodnôt polí.

Shuffle ($ zvieratá); // usporiadanie položiek v náhodnom poradí
Ďakujem za pozornosť!

$ arr [1] = "PHP";
$ arr [2] = "MySQL";
$ arr [3] = "Apache";
?>

Array elements can be used in double quotes as regular variables, so the code

echo "$ arr [1] $ arr [2] $ arr [3]";
?>

$ arr ["first"] = "PHP";
$ arr ["second"] = "MySQL";
$ arr ["third"] = "Apache";
?>

V tomto prípade sa pole nazýva asociatívny a jeho indexy sa nazývajú kľúče... Ak chcete zobraziť prvok poľa v reťazci, nezadávajte úvodzovky (ani dvojité, ani jednoduché):

echo "$ arr [prvý] $ arr [druhý] $ arr [tretí]";
?>

Pretože asociatívne polia nemajú žiadne indexy, bol zavedený špeciálny typ slučky na ich prechádzanie - pre každý:

foreach ($ arr ako $ key => $ hodnota)
{
echo "$ key = $ value
" ;
}
?>

V dôsledku cyklu sa zobrazia tri riadky

Prvá = PHP
druhý = MySQL
tretí = Apache

Konštrukcia „$ key =>“, ktorá vám umožňuje prístup ku kľúču poľa v každej zo slučiek, je voliteľná a je možné ju vynechať:

foreach ($ arr ako hodnota $)
{
ozvena „$ hodnoty
" ;
}
?>

Mnoho funkcií vám tiež umožňuje vrátiť polia, napríklad funkcia súbor () ktorý načíta súbor a vráti jeho obsah ako pole. Každý prvok poľa zodpovedá jednému riadku.

$ arr = súbor ("text.txt");
pre ($ i = 0; $ i< count ($arr ); $i ++)
{
echo $ arr [$ i]. "
" ;
}
?>

Ďalšou užitočnou funkciou je funkcia explodovať (), ktorý vám umožní rozdeliť reťazec na niekoľko fragmentov, z ktorých každý je umiestnený v samostatnom prvku poľa:

$ str = "345|[chránené e -mailom]| http: //www.site | prihlasovacie meno | heslo ";
$ arr = explode ("|", $ str);
pre ($ i = 0; $ i< count ($arr ); $i ++)
{
echo $ arr [$ i]. "
" ;
}
?>

Výsledok skriptu môže vyzerať takto:

345
[chránené e -mailom]
http: //www.site
Prihlásiť sa
heslo

Existuje aj inverzná funkcia - implode (), ktorá spája prvky poľa do reťazca, pričom na to používa zadaný oddeľovač:

$ arr = "345";
$ arr = " [chránené e -mailom]" ;
$ arr = "http: //www.site";
$ arr = "prihlásenie";
$ arr = "heslo";
$ str = implode ("##", $ arr);
echo $ str; //345##[chránené e -mailom]## http: // www.
?>

Komentovať

Vo všeobecnosti existuje veľa funkcií, ktoré narušujú reťazec; zváženie všetkých z nich presahuje rámec tohto článku.

Pomocou funkcie môžete odstrániť jeden prvok poľa zrušiť nastavenie (), a existenciu poľa môžete skontrolovať pomocou funkcie isset ()... Definujme pole 10 prvkov a zničme každý párny prvok.

zrušené nastavenie ($ arr [0], $ arr [2], $ arr [4], $ arr [6], $ arr [8]);
// Skontrolujte, či prvky poľa existujú
pre ($ i = 0; $ i< 10 ; $i ++)
{
ak (isset ($ arr [$ i])) echo "$ arr [$ i] je definovaný
" ;
inak echo "Položka $ arr [$ i] neurčitý
"
;
}
?>

Výsledkom skriptu budú nasledujúce riadky

$ Arr nie je definovaný
$ Arr je definovaný
$ Arr nie je definovaný
$ Arr je definovaný
$ Arr nie je definovaný
$ Arr je definovaný
$ Arr nie je definovaný
$ Arr je definovaný
$ Arr nie je definovaný
$ Arr je definovaný

Použitie funkcie zrušiť nastavenie () môžete zničiť celé pole naraz.

$ arr = pole (9, 8, 7, 6, 5, 4, 3, 2, 1, 0);
unset ($ arr);
if (isset ($ arr)) ozvena "Pole definované";
inak ozvena "Pole nie je definované";
?>

Predtým boli polia dumpingové pomocou slučky, ale PHP poskytuje špeciálnu funkciu na ukladanie polí. print_r ()... Táto funkcia je zameraná na výstup do streamu konzoly, preto je pri výstupe výsledkov do okna prehliadača lepšie zarámovať ju pomocou značiek.

A
:

$ arr = "345";
$ arr = " [chránené e -mailom]";
$ arr = "http: //www.site";
$ arr = "prihlásenie";
$ arr = "heslo";
ozvena "

";
print_r ($ arr);
echo "";
?>

Výsledok skriptu je nasledujúci:

Array
=> 345
=> [chránené e -mailom]
=> http: //www.site
=> prihlásenie
=> heslo
)

Viacrozmerné polia

Ako prvky poľa môžu pôsobiť nielen skalárne hodnoty, ale aj samotné polia. V tomto prípade ide o tzv viacrozmerné polia.

Nech je potrebné získať takú tabuľku:

Za týmto účelom vytvoríme dvojrozmerné pole:

$ arr = pole (pole („Vasya“, „zámočník“, 2500),
pole („Misha“, „staviteľ“, 3000),
pole („Andrey“, „šofér“, 2700));
?>

Teraz je možné tabuľku zobraziť pomocou nasledujúceho kódu:

pre ($ i = 0; $ i< 3 ; $i ++)
{
pre ($ j = 0; $ j< 3 ; $j ++)
{
ozvena „|“. $ arr [$ i] [$ j];
}
ozvena "
" ;
}
?>

Výsledok:

| Vasya | zámočník | 2 500
| Misha | staviteľ | 3000
| Andrej | šofér | 2700

Môžete tiež použiť 3D, 4D atď. polia.

Operácie poľa (zbierka receptov)

1) Stanovenie počtu prvkov v poli počítať ():

Vytvoríme pole $ name:

?>

Ak chcete určiť počet prvkov v poli, môžete urobiť nasledovné:

ozvena „Počet prvkov v poli- '. count ($ name);
?>

Výsledok:

Počet prvkov v poli - 8

2) Kombinácia polí

a) Vytvorme dve asociatívne polia $ a a $ b:

$ a = pole („a“ => ”aa“, „b“ => „bb“);
$ b = pole („c“ => „cc“, „d“ => „dd“);
?>

Nech je potrebné vytvoriť pole $ c, ktoré bude obsahovať prvky poľa $ a aj $ b:

$ a = pole ("a" => "aa", "x" => "xx");
$ b = pole ("c" => "cc", "d" => "dd");
$ c = $ a + $ b;
ozvena "

"
;

print_r ($ c);
ozvena "
" ;
?>

Výsledok:

Array
[a] => aa
[x] => xx
[c] => cc
[d] => dd
)

b) Vytvorte dve číselné polia $ a a $ b:

$ a = pole (10, 20);
$ b = pole (100, 200, 300, 400, 500);
?>

Už ich nebude možné kombinovať pomocou konštrukcie $ c = $ a + $ b;. Na ich kombináciu musíte použiť funkciu array_merge ():

$ c = pole_merge ($ a, $ b);
?>

3) Zoradenie poľa

Použime pole $ name:

$ name = pole („Boss“, „Lentin“, „NAV“, „Endless“, „Dragons“, „SiLeNT“, „Doctor“, „Lynx“);
?>

Predpokladajme, že chcete zoradiť pole v abecednom poradí, môžete na to použiť nasledujúci kód:

triediť ($ name);
ozvena "

"
;

print_r ($ meno);
ozvena "
" ;
?>

Výsledok:

Array
=> Šéf
=> Doktor
=> Draci
=> Nekonečné
=> Pôstny
=> Lynx
=> NAV
=> SiLeNT
)

Predpokladajme, že je potrebné vybrať najkratší prvok z poľa $ name (ktoré má najmenší počet znakov), v tomto prípade môžete použiť kód:

$ name = pole („Boss“, „Lentin“, „NAV“, „Endless“, „Dragons“, „SiLeNT“, „Doctor“, „Lynx“);
$ min = strlen ($ name [0]);
$ nam = $ name [0];
pre ($ i = 1; $ i< count ($name ); $i ++)
{
$ len = strlen ($ name [$ i]);
ak ($ ​​len< $min )
{
$ nam = $ name [$ i];
$ min = strlen ($ nam);
}
}
ozvena „Najmenšia dĺžka -“... $ nam;
?>

4) Pohyb vo vnútri poľa

Vytvoríme pole $ num:

$ num = pole (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
?>

Predpokladajme, že chcete zobraziť prvky poľa v opačnom poradí, v tomto prípade môžete použiť kód:

$ end = end ($ num);
Kým ($ end)
{
echo $ end. "-";
$ end = prev ($ num);
}
?>

Výsledok:

10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 – 1

Vyššie uvedený kód je možné upraviť:

$ num = rozsah (1, 10);
print_r (array_reverse ($ num));
?>

Funkcia rozsah (1,10) vytvorí pole (1,2,3,4,5,6,7,8,9,10) s náhodnými prvkami. Funkcia array_reverse () zaberá pole a usporiada prvky v opačnom poradí (10,9,8,7,6,5,4,3,2,1)

Funkcie Ďalšie (), každý () posuňte ukazovateľ o jeden prvok dopredu. Funkcia resetovať () vráti ukazovateľ na 1 prvok v poli. Použime pole $ num.

Pole nemusí byť jednoduchým zoznamom kľúčov a jednoduchých hodnôt. Každý prvok poľa môže obsahovať ďalšie pole ako hodnotu, ktoré môže tiež obsahovať pole a podobne. Týmto spôsobom môžete vytvárať dvojrozmerné a trojrozmerné polia.

2D polia

Dvojrozmerné pole- pole, ktoré ukladá ostatné polia ako hodnoty. Zvážte vytvorenie dvojrozmerného poľa pomocou konštruktora array ():

$ kvety = pole (pole („ruže“, 100, 15), pole („tulipány“, 60, 25), pole („orchidey“, 180, 7));

Pole $ flowers obsahuje tri polia. Ako si pamätáte, na prístup k prvkom jednorozmerného poľa musíte zadať názov poľa a kľúč. To isté platí pre dvojrozmerné polia, s jedinou výnimkou: každý prvok má dva kľúče: prvý na výber riadka, druhý na výber stĺpca.

Na zobrazenie prvkov tohto poľa môžete manuálne zaregistrovať prístup ku každému z nich, ale je lepšie použiť vnorené slučky:

Ručný prístup k prvkom
"; echo $ kvety." cena ". $ kvety." množstvo „. $ kvetov“.
"; echo $ kvety." cena ". $ kvety." množstvo „. $ kvetov“.
"; ozvena"

Použitie slučiek na zobrazenie položiek

"; ozvena"
    "; pre ($ riadok = 0; $ riadok< 3; $row++) { echo "
  1. Číslo riadku $ riadok"; ozvena"
      "; pre ($ col = 0; $ col< 3; $col++) { echo "
    • ". $ kvety [$ riadok] [$ stĺp]."
    • ";) ozvena"
    "; ozvena"
  2. ";) ozvena"
"; ?>

Namiesto čísel stĺpcov (štandardne priradené indexy) im môžete dať požadované kľúče. Na tento účel sa používajú asociatívne polia. Nasledujúce pole bude ukladať rovnaké údaje, ale pomocou kľúčov pomenuje stĺpce s informáciami:

$ kvety = pole (pole („Názov“ => „ruže“, „Cena“ => 100, „Množstvo“ => 15), pole („Názov“ => „tulipány“, „Cena“ => 60, “ Množstvo "=> 25,), pole (" Názov "=>" Orchidey "," Cena "=> 180," Množstvo "=> 7));

Kľúče poskytujú ďalšie pohodlie pri práci s poľom v prípadoch, keď potrebujete získať jednu z hodnôt. Potrebné údaje sa dajú ľahko nájsť odkazovaním na správnu bunku pomocou zmysluplných názvov riadkov a stĺpcov. V tomto prípade však strácame schopnosť sekvenčne prechádzať poľom pomocou slučky for.

Iterovať iba detské polia pomocou slučky for. Pretože sú zase asociatívne, na iteráciu svojich prvkov musíte použiť slučku foreach alebo prvky iterovať ručne:

„ruže“, „cena“ => 100, „množstvo“ => 15), pole („názov“ => „tulipány“, „cena“ => 60, „množstvo“ => 25,), pole („názov“ "=>" orchidey "," cena "=> 180," množstvo "=> 7)); ozvena "

Ručný prístup k prvkom asociatívneho poľa

"; pre ($ riadok = 0; $ riadok< 3; $row++) { echo $flowers[$row]["Название"]." цена ".$flowers[$row]["Цена"] ." количество ".$flowers[$row]["Количество"]; echo "
";) ozvena"

Použitie slučky foreach na prístup k prvkom

"; ozvena"
    "; pre ($ riadok = 0; $ riadok< 3; $row++) { echo "
  1. Číslo riadku $ riadok"; ozvena"
      "; foreach ($ flowers [$ row] ako $ key => $ hodnota) (echo"
    • ". Hodnota $."
    • ";) ozvena"
    "; ozvena"
  2. ";) ozvena"
"; ?>

Na vytvorenie dvojrozmerného poľa nie je potrebné použiť konštruktor array (), môžete použiť aj krátku syntax - hranaté zátvorky:

$ flowers = [["Name" => "Ruže", "Cena" => 100, "Množstvo" => 15], ["Názov" => "Tulipány", "Cena" => 60, "Množstvo" = > 25,], ["Názov" => "Orchidey", "Cena" => 180, "Množstvo" => 7]];

3D polia

Nie je potrebné byť obmedzený iba na dve dimenzie: rovnako ako prvky poľa môžu obsahovať polia, tieto polia naopak môžu obsahovať nové polia.

Trojrozmerné pole charakterizuje šírku, výšku a hĺbku. Ak reprezentujete dvojrozmerné pole vo forme tabuľky, trojrozmerné pole do tejto tabuľky pridá. Každý prvok takéhoto poľa bude odkazovať na vrstvu, riadok a stĺpec.

Ak svoje pole mierne upravíme farbami, môžeme ho transformovať na trojrozmerné. V nižšie uvedenom kóde to vidíte trojrozmerné pole- pole obsahujúce pole polí:

$ flowers = [[["ruže", 100, 15], ["tulipány", 60, 25], ["orchidey", 180, 7]], [["ruže", 100, 15], ["tulipány ", 60, 25], [" orchidey ", 180, 7],], [[" ruže ", 100, 15], [" tulipány ", 60, 25], [" orchidey ", 180, 7]] ];

Pretože toto pole obsahuje iba číselné indexy, na jeho zobrazenie môžeme použiť vnorené slučky:

"; pre ($ vrstva = 0; $ vrstva< 3; $layer++) { echo "

  • Číslo vrstvy $ vrstva "; ozvena"
      "; pre ($ riadok = 0; $ riadok< 3; $row++) { echo "
    • Číslo riadku $ riadok "; ozvena"
        "; pre ($ col = 0; $ col< 3; $col++) { echo "
      • ". $ kvety [$ vrstva] [$ riadok] [$ stĺp]."
      • ";) ozvena"
      "; ozvena"
    • ";) ozvena"
    "; ozvena"
  • ";) ozvena""; ?>