Procházení dvourozměrných polí v php. Pole

Lekce probere možnosti práce s poli v PHP, deklaraci pole, typy polí: vícerozměrná a asociativní pole

  1. Pole s číselnými indexy
  2. $fruits="jablko"; $fruits="hruška"; $fruits="pomeranč"; $fruits="meruňka";

    Tato možnost inicializace pole se dnes prakticky nepoužívá. Pro práci s poli se používá následující možnost:

  3. Asociativní pole
  4. Tato možnost pro vytvoření pole používá objekt pole:

    $ovoce = array(1 => "jablko", 2 => "hruška", 3 => "pomeranč", 4 => "meruňka"); // Od PHP 5.4 $fruits = array[ 1 => "jablko", 2 => "hruška", 3 => "pomeranč", 4 => "meruňka" ];

    Přístup k prvkům pole

    1 2 3 4 5 6 7 8 $ovoce [ 0 ] = "jablko" ; $ovoce [ 1 ] = "hruška" ; $ovoce [ 2 ] = "pomeranč" ; $ovoce [ 3 ] = "meruňka" ; echo "První prvek pole je". $ovoce[0]. "
    “; ozvěna "Druhý prvek pole je". $ovoce[1]. "
    “; ozvěna "Třetí prvek pole je". $ovoce[2]. "
    " ;

    $fruits="jablko"; $fruits="hruška"; $fruits="pomeranč"; $fruits="meruňka"; echo "První prvek pole je ". $ovoce."
    "; echo "Druhým prvkem pole je ". $ovoce."
    "; echo "Třetím prvkem pole je ". $ovoce."
    ";

    Výsledkem spuštění programu bude:

    Důležité: Index prvku v asociativním poli nemůže být číslo, ale slovo (typ tětiva)

    Podívejme se na příklad:

    Příklad: Vytvořte pole studenta s hodnotami jména, příjmení a věku studentů. Zobrazte hodnoty prvků pole

    $student = array("Jméno" => Jan, "Příjmení" => Novák, "Věk" => 20); echo "uživatelské jméno" . $student["Jméno"] . "


    ";

    $student["Jméno"] = "Jan"; $student["Příjmení"] = "Kovář"; $student["Věk"] = 20; echo "uživatelské jméno" . $student["Jméno"] . "
    "; echo "příjmení uživatele " . $student["Příjmení"] ."
    "; echo "věk uživatele " . $student["Věk"] ."
    ";

    Výsledek:

    Důležité:Řetězcové klíče (indexy) musí být vždy uzavřeny v uvozovkách

    Indexovaná pole bez klíče:

    Také je třeba vzít v úvahu, že indexy v poli není nutné při inicializaci pole s hodnotami vůbec zapisovat. Poté vytvoříme tzv pole-kolekce(sbírkový předmět):

    $student = pole ("Jan" , "Smith" , 20 ) ;

    $student = array("Jan","Smith", 20);

    V tomto případě jim interpret sám přiřadí číselné indexy počínaje 0

    Příklad převody typů a přepisování prvků.
    Všimněte si použití procedury var_dump().

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

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

    Výsledek:

    Array(3) ( => string(1) "a" => string(1) "b" => string(1) "d" )

    Příklad použití vícerozměrné pole a organizování přístupu k jeho prvkům

    1 2 3 4 5 6 7 8 9 10 11 12 "1", 2 => 2, "multi" => pole ( "1_1" => "1_1" ) ); var_dump($array_odnom["první"]); var_dump($array_odnom[2]); var_dump($array_odnom["multi"]["1_1"]); ?>

    "1", 2 => 2, "multi" => pole("1_1" => "1_1")); var_dump($array_odnom ["první"]); var_dump($array_odnom); var_dump($array_odnom ["multi"]["1_1"]); ?>

    Výsledek:

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

    Příklad: vytvořte dvourozměrné pole o rozměrech 3 x 2. Vyplňte jej hodnotami pro první řádek: „1_1“, „1_2“, „1_3“; pro druhý řádek: „2_1“, „2_2“, „2_3“. Zobrazte první prvek pole


    Výkon:
    1 2 3 4 5 6 7 8 9 10 11 12 $array_odnom = pole ( 1 => pole ( 1 => "1_1" , 2 => "1_2" , 3 => "1_3" ), 2 => pole ( 1 => "2_1" , 2 => "2_2" , 3 => "2_3" ), ); echo $array_odnom [ 1 ] [ 1 ] ;

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

    Úloha php2_1: vytvořte dvourozměrné pole 3 x 3 - levý horní roh pythagorejské násobilky (1, 2, 3; 4, 6, 8 ...)



    Laboratorní práce:
    Řekněme, že máte nějaký druh reklamy a několik různých lidí, kterým potřebujete tuto reklamu poslat. Chcete-li to provést, vytvořte šablonu s obsahem reklamy, uvnitř které je řada měnících se parametrů: pole jmen lidí a pole událostí. Zobrazte na obrazovce jednu verzi finální reklamy. Chcete-li definovat pole, použijte asociativní pole.

    Použijte šablonu reklamy a zaměřte se na barvy:

    Červená – pole.
    Hnědá – číselná proměnná.
    Modrá – konstantní.

    Milý Ivane Ivanoviči!
    Zveme vás na Den otevřených dveří.
    Datum akce: 12. května.
    S pozdravem Vasily.


    Vyplňte kód:
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 // konstantní deklarace define("SIGN" , "S pozdravem Vasyo") ; // pole pro jména příjemců$names = pole (... ) ; // pole pro události$events = array("op_doors" => "Den otevřených dveří", "vistavka" => "výstava", ... ) ; $str = "Drahá $names!
    "
    ; $str .= ...; $str .= ...; echo ...;

    // deklarace konstanty define("SIGN","S pozdravem Vasya"); // pole pro jména příjemců $names = array(...); // pole pro události $events = array("op_doors" => "den otevřených dveří", "vistavka" => "výstava", ...); $str = "Vážený $names!
    "; $str .= ...; $str .= ...; echo ...;

Poslední aktualizace: 1.11.2015

Pole jsou navržena pro ukládání sad dat nebo prvků. Každý prvek v poli má svůj jedinečný klíč a hodnotu. Uložme tedy seznam modelů telefonů do pole:

"; ?>

Zde je vytvořeno pole $phones se čtyřmi prvky. Každý prvek v poli představuje pár klíč–hodnota. Takže první prvek $phones = "Nokia N9" má klíč - číslo 0 a hodnotu - řetězec "Nokia N9". V takových polích se numerické klíče také nazývají indexy.

Ke zjištění počtu prvků v poli můžete použít funkci count(). A vzhledem k tomu, že klíče jsou v pořadí od 0 do 3, a se znalostí velikosti pole, můžete prvky pole zobrazit ve smyčce for.

Aby byl vztah mezi klíči a hodnotami prvků jasnější, vytiskneme pole pomocí funkce print_r:

Print_r($telefony);

Dostaneme následující výstup:

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

Toto vytvoření pole by také odpovídalo následujícímu:

"; ?>

Pokud není zadán klíč prvku, PHP používá jako klíče čísla. V tomto případě začíná číslování klíčů od nuly a každý nový klíč se zvyšuje o jedničku.

Když známe klíč prvku v poli, můžeme k tomuto prvku přistupovat, získat nebo změnit jeho hodnotu:

// získání prvku klávesou 1 $myPhone = $phones; echo "$myPhone
"; // přiřazení nové hodnoty $phones = "Samsung X650"; echo "$phones
";

Ale nejen celá čísla, ale také řetězce mohou být použity jako klíče:

Taková pole se také nazývají asociativní.

operátor pole

Jeden způsob, jak vytvořit pole, byl diskutován výše. Existuje však další, který zahrnuje použití operátoru array().

Operátor array() přebírá sadu prvků. Klíče zde také nejsou výslovně uvedeny. Proto PHP automaticky čísluje prvky od nuly. Ale můžeme také určit klíč pro každý prvek:

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

Operace => umožňuje namapovat klíč na konkrétní hodnotu.

Iterace přes asociativní pole

Výše jsme se podívali na to, jak použít cyklus for k zobrazení všech prvků pole, kde jsou klíče specifikovány postupně čísly od 0 do 3. To však nefunguje s asociativními poli. A pro ně má PHP speciální typ smyčky - foreach...as :

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach($phones as $item) echo "$item
"; ?>

Ve smyčce foreach jsou všechny prvky postupně odstraněny z pole a jejich hodnota je umístěna do proměnné zadané za klíčovým slovem as. V tomto případě jsou všechny čtyři hodnoty z pole $phones postupně umístěny do proměnné $item. Když je načten poslední prvek z pole, smyčka končí.

Smyčka foreach umožňuje načíst nejen hodnoty, ale také klíče prvků:

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); foreach($phones as $key=>$value) echo "$key => $value
"; ?>

Zde se při iteraci přes prvky smyčky klíč prvku přenese do proměnné $key a jeho hodnota se přenese do proměnné $value.

Alternativou ke smyčce foreach je použití seznamu a jednotlivých funkcí:

"iPhone5", "samsumg"=>"Samsung Galaxy III", "nokia" => "Nokia N9", "sony" => "Sony XPeria Z3"); while (list($key, $value) = každý($phones)) echo "$key => $value
"; ?>

Cyklus while poběží, dokud každá funkce nevrátí hodnotu false . Každá funkce projde všemi prvky pole $phones a vrátí je jako pole, které obsahuje klíč a hodnotu prvku. Toto pole je poté předáno funkci seznamu a hodnoty pole jsou přiřazeny proměnným v závorkách. Když každá funkce dokončí iteraci polem $phones, vrátí hodnotu false a smyčka while skončí.

Vícerozměrná pole

V předchozích příkladech byla uvažována pouze jednorozměrná pole, kde hodnoty prvků představovaly čísla nebo řetězce. Ale v PHP mohou být pole také vícerozměrná, to znamená pole, kde prvek pole je samo pole. Vytvořme například vícerozměrné pole:

array("iPhone5", "iPhone5s", "iPhone6") , "samsumg"=>array("Samsung Galaxy III", "Samsung Galaxy ACE II"), "nokia" => array("Nokia N9", "Nokia" Lumia 930"), "sony" => pole ("Sony XPeria Z3", "Xperia Z3 Dual", "Xperia T2 Ultra")); foreach ($phones as $brand => $items) ( echo "

$značka

"; echo"
    "; foreach ($items jako $key => $value) ( ​​echo "
  • $hodnota
  • ";) echo"
"; } ?>

A při výstupu dostaneme 4 seznamy:

Pro přístup k danému prvku musíte také zadat klíče v hranatých závorkách. Podívejme se například na první prvek v prvním poli. Protože klíč prvního pole je "apple" a klíč prvního prvku v prvním poli je číslo 0 (protože jsme klíče explicitně nespecifikovali):

Echo $phones["jablko"];

Druhý prvek třetího pole můžete získat podobným způsobem:

Echo $telefony["nokia"];

Řekněme, že vnořená pole představují také asociativní pole:

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 ($technics jako $tovar => $items) ( echo "

$produkt

"; echo"
    "; foreach ($items jako $key => $value) ( ​​echo "
  • $klíč: $hodnota
  • ";) echo"
"; ) // přiřadit jinou hodnotu jednomu z prvků $technics["phones"]["nokia"] = "Nokia Lumnia 930"; // zobrazení této hodnoty echo $technics["phones"]["nokia" ];

1. Co je to pole PHP?
2. Příklad PHP pole?
3. Jednorozměrné pole (vektor)
- index
- asociativní
4. Dvourozměrné pole (pole v poli, matice)
5. Funkce pro práci s poli (pole v poli, matice)

Rád bych toto téma začal odříkanými příklady. Řekněme, že nějaké zvažujeme osoba. On má jméno, příjmení, adresa, telefonní číslo, pohlaví, výška, barva očí a tak dále. Informace o všech těchto bodech lze připsat řadě údajů o osobě.

Pole může být jiného typu, bez jakýchkoli specifik položek. Bude jen téma. Řekněme toto programování webu. A prvky budou jazyky - HTML, CSS, JavaScript, PHP, MySQL. Celkem je 5 prvků.

Na základě posledního příkladu předpokládejme pole:

programování webu
1. HTML
2.CSS
3. JavaScript
4.PHP
5. MySQL

Nyní se podívejte na tento příklad a analyzujte základní pojmy.

Pole v PHP je soubor sekvenčně umístěných dat stejného typu, souvisejících společným tématem, jejichž počet prvků je pevně daný.

Pole v tomto příkladu bude voláno programování webu.

Každý prvek má své pořadové místo, identifikátor.
Index(klíč pole) - buď pořadové číslo nebo textová hodnota, podle které lze prvek identifikovat.

Indexy ve výše uvedeném příkladu by byly číselná hodnota od 1 do 5. Při přístupu k indexu 2 uvidíme CSS.

Příklad pole v PHP

Nyní se podívejme na výše uvedený příklad v syntaxi PHP, nikoli v ruštině. Řekněme, že pole se bude nazývat kratší - web. Hranaté závorky vloží rejstřík.

Podívejme se na jednoduchý příklad pole, kde hodnoty indexu budou obsahovat číselné hodnoty a pole vytvoříme, jako bychom přiřazovali hodnoty proměnným.

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

$web; // tato proměnná obsahuje pole s 5 prvky

// pro zobrazení jednoho z prvků pole stačí zadat index v poli
echo $web; // vypíše PHP

Jednorozměrné pole

INDEXOVÉ POLE

Výše jsme se s webovým programováním podívali pouze na příklad jednorozměrného pole.
Tímto způsobem se vytváří jen zřídka. Spíše vizuálně ukazuje strukturu pole. Častěji se uchýlí k jiné metodě.

$web=array('HTML','CSS','JavaScript','PHP','MySQL');
echo $web; // vypíše 'HTML'
echo $web; // vypíše 'JavaScript'
echo $web; // vytiskne 'PHP'

Pokud chcete nastavit hodnoty indexu, musíte je zadat následovně. Podepsat => je ukazatel pro přiřazení indexu k hodnotě nebo naopak k hodnotě indexu.

$web=array(1=>’HTML’,2=>’CSS’,3=>’JavaScript’,4=>’PHP’,5=>’MySQL’);
echo $web; // HTML
echo $web; // CSS
echo $web; //PHP
V příkladu začíná počítání od 1. Proměnná s indexem 0 je tedy prázdná.

V následujícím příkladu nebudeme určovat index.

$day='pondělí'; // index 0
$day='úterý'; // 1
$day='Středa'; // 2
$day='Čtvrtek'; // 3
$day='Pátek'; // 4
Můžete vidět, že sekvenční plnění probíhá od začátku.

ASOCIATIVNÍ POLE

Často je potřeba vytvořit písmenný index pro prvek pole. Jak jsem uvedl výše, takový rejstřík se musí skládat z latinských písmen a název musí být uzavřen v uvozovkách. Podívejme se na příklad člověka.

$user[‘nick’]=’Logic’;
$user[‘name’]=’Pavel’;
$user[‘věk’]=’25’;
$user[‘sex’]=’Muž’;

$uživatel; // proměnná $user obsahuje pole se 4 prvky s písmennými indexy

// zobrazí prvek pole s uvedením jeho písmenného indexu
echo $web['name']; // vytiskne 'Pavel'
Jak vidíte, vše je docela jednoduché. Uvádíme pouze hodnotu indexu.

Dvourozměrné pole

Pokud vám unikla první část s Jednorozměrným polem, důrazně vám doporučuji si ji přečíst.
Jednoduše řečeno, je to pole v poli. To znamená, že prvky velkého pole jsou různé. Taková pole značně zpomalují práci skriptu, načítání RAM, takže pro rychlé zpracování takových skupin dat byly vytvořeny Databáze (Co je databáze?), ale o tom později. Podívejme se na příklad dvourozměrného pole.

// pole s názvy částí světa
$m = array('Evropa','Asie','Afrika','Amerika','Austrálie a Oceánie');

// pole s názvy zemí
$s = array('Rusko','Ukrajina','Bělorusko','Kazachstán');

// pole s názvy velkých písmen
$с = array('Moskva','Kyjev','Minsk','Astana');

// vytvoří dvourozměrné pole Geography
$geografie = pole($m, $s, $c);
?>
Zahrnutá pole, jak jste si všimli, mohou mít různý počet prvků. Z části o jednorozměrných polích vyplývá, že každý prvek pole může mít index. Přiřaďme tedy každému zahrnutému poli jinou hodnotu.

Chcete-li to provést, rozbalte poslední řádek a napište jej následovně.

$geography = array('Části světa'=>$m, 'Země'=>$s, 'Hlavní města'=>$s);

Funkce pro práci s poli php

Pro každého je cyklická funkce pro práci s poli, ve které je počet cyklů roven počtu prvků pole.

Vypadá to takto:

PHP kód

foreach (pole jako $key=>$value)
týmy;
No hned ukázka práce

// vytvořte pole se slavným IT
$names["Ritchie"] = "Dennis";
$names["Thompson"] = "Ken";
$names["Gates"] = "Bill";
$names["Jobs"] = "Steve";

foreach ($names jako $key => $value) (
echo "$hodnota $klíč";
}
?>
Skript se zobrazí na obrazovce

Dennis Ritchie
Ken Thompson
Bill Gates
Steve Jobs
Počet- funkce, která vrací počet prvků v poli.

echo count($names); // v našem příkladu s IT vrátí hodnotu 4
Seřadit— funkce, která třídí prvky pole. Vhodné pro číselné hodnoty indexu.
Arsort je funkce, která třídí prvky pole v opačném pořadí.

sort($names); // seřadí v pořadí. Je vhodné, pokud jsou v Indexu čísla
arsort($jména); // řazení v obráceném pořadí. To znamená, že podle indexů budou prvky v pořadí 3, 2, 1, 0
Nenastaveno je funkce, která odstraňuje prvek pole.

unset($array); // odstranění prvku pole s indexem 2
unset($array); // smazání celého pole
Array_search— vyhledávací funkce v poli.

Lekce 7. Pole v PHP

Má dva argumenty. Jednoduše řečeno, má array_search('co', where)

$animals='pes';
$animals='kočka';
$animals='pták';
echo array_search('kočka',$zvířata); // zobrazí index prvku - číslo 2
Zamíchat je funkce, která zamíchá klíče hodnot pole.

shuffle($zvirata); // uspořádání prvků v náhodném pořadí
Děkuji za pozornost!

Předchozí článek
Lekce 6. Smyčky v PHP Další článek
Lekce 8. Včetně souboru v PHP. Zahrnout a vyžadovat

Komentáře k článku (vk.com)

Vytvoří prázdné pole.

Hodnoty můžete vypsat do pole později, takto:

$myArray aktuálně obsahuje „strom“, „dům“ a „pes“. Každý z výše uvedených příkazů přidá do pole a zachová prvky, které tam již byly.

Vzhledem k tomu, že pocházím z jiných jazyků, tento způsob přidávání pole se mi zdál zvláštní. Čekal jsem, že udělám něco jako $myArray+="dog" nebo tak něco...

nebo možná metoda "add()", jako jsou kolekce Visual Basic. Ale tato syntaxe přímého připojení je krátká a pohodlná.

K odstranění prvků byste měli skutečně použít funkci unset():

... odstraní "house" z pole (pole jsou založeny na nule).

Základy práce s poli v PHP

...zničí celé pole.

Aby bylo jasno, syntaxe prázdných hranatých závorek pro připojení k poli je prostě způsob, jak říci PHP, aby automaticky přiřazovalo indexy každé hodnotě, místo aby přiřazovalo indexy. Coverings, PHP ve skutečnosti dělá toto:

Indexy si můžete přiřadit sami, pokud chcete, a můžete použít jakákoli čísla, která chcete. Některým prvkům můžete také přiřadit indexová čísla a jiným ne. Pokud tak učiníte, PHP doplní chybějící indexová čísla, která se budou postupně zvyšovat od největšího přiděleného indexového čísla.

Takže pokud uděláte toto:

... prvku "dog" bude přiděleno indexové číslo 21. PHP neprovádí inteligentní porovnávání vzorů pro přiřazení indexů jeden po druhém, takže nebude vědět, že možná budete chtít přiřadit indexu číslo 30 "dog." K určení vzoru přírůstku pro pole můžete použít další funkce. Nebudu to rozebírat, ale je to všechno v dokumentech PHP.

V některých jiných jazycích (např. AS3) bylo zaznamenáno, že inicializace nového pole je rychlejší, pokud se provádí jako spíše než pro účely vytváření a konkretizace objektů. Zajímalo by mě, jestli existují nějaké ekvivalenty v PHP?

Pole v PHP. Práce s poli v PHP.

Tento článek popisuje práci s poli v PHP (základy). Pole v PHP jsou datovým typem, který umožňuje uložit více proměnných v jedné.

Zde je jeden jednoduchý příklad:

Ve výše uvedeném příkladu je $products pole, ve kterém máme uloženo několik různých produktů. Dále jsme odvodili všechny tyto produkty, ke každému jsme přistupovali prostřednictvím „indexů“ (klíčů): 0, 1 a 2.

Jednotlivé hodnoty lze samozřejmě uložit i do samostatných proměnných, například takto:

To je samozřejmě dobře, ale představme si, že jsme najednou potřebovali projít všemi těmito prvky. Jak tady můžeme být? Napsat kód pro každou proměnnou? Je to dlouhé a nepohodlné. Řešením je použití polí.
Pomocí cyklů můžeme při každé iteraci (kroku) přistupovat k dalšímu prvku díky indexům (klávesám).

Vytvoření pole v PHP.

V PHP není potřeba deklarovat pole. Pole můžeme vytvořit pomocí funkce array():

V tomto případě jsme vytvořili prázdné pole. Pokud zadáme několik hodnot v závorkách oddělených čárkami, vyplníme toto pole několika prvky:

Typy polí.

1. „Indexovaná“ pole nebo „automatická pole“. Příklady takového pole jsme již uvedli výše. Zvláštností těchto polí je, že mají číselné indexy, které se vytvářejí automaticky („za běhu“). Číslování prvků začíná od 0.

Jak určit délku (velikost) indexovaného pole.

Použití polí

Pomocí funkce počet():

Výčet prvků. Pomocí konstrukce můžete vyjmenovat všechny prvky automatického pole pro nebo pro každého:

Chcete-li přidat nový prvek do pole (zapsat do pole), stačí provést následující řádek:

Iterace přes všechny prvky asociativního pole se provádí následovně:

3. Vícerozměrná pole obsahují další pole jako prvky:

Můžeme také vytvořit trojrozměrné pole:

výstup pole v PHP. Pomocí této funkce můžete zobrazit libovolné pole print_r(), Například:

Když je však prvek odstraněn, indexy ostatních prvků zůstanou nezměněny.

Funkce pro práci s poli:

Třídicí pole
array_search – vyhledá hodnotu v poli

(pole v poli, matice)
5. Funkce pro práci s poli (pole v poli, matice)

Co je pole PHP?

Rád bych toto téma začal odříkanými příklady. Řekněme, že některé zvažujeme osoba. On má jméno, příjmení, adresa, telefonní číslo, pohlaví, výška, barva očí a tak dále. Informace o všech těchto bodech lze připsat řadě údajů o osobě.

Pole může být jiného typu, bez jakýchkoli specifik položek. Bude jen téma. Řekněme toto programování webu. A prvky budou jazyky - HTML, CSS, JavaScript, PHP, MySQL. Celkem je 5 prvků.

Na základě posledního příkladu předpokládejme pole:

programování webu
1. HTML
2.CSS
3. JavaScript
4.PHP
5. MySQL

Nyní se podívejte na tento příklad a analyzujte základní pojmy.

Pole v PHP je soubor sekvenčně umístěných dat stejného typu, souvisejících společným tématem, jejichž počet prvků je pevně daný.

Pole v tomto příkladu bude voláno programování webu.

Každý prvek má své pořadové místo, identifikátor.
Index(klíč pole) - buď pořadové číslo nebo textová hodnota, podle které lze prvek identifikovat.

Indexy ve výše uvedeném příkladu by byly číselná hodnota od 1 do 5. Při přístupu k indexu 2 uvidíme CSS.

Příklad pole v PHP

Nyní se podívejme na výše uvedený příklad v syntaxi PHP, nikoli v ruštině. Řekněme, že pole se bude nazývat kratší - web. Hranaté závorky vloží rejstřík.
Podívejme se na jednoduchý příklad pole, kde hodnoty indexu budou obsahovat číselné hodnoty a pole vytvoříme, jako bychom přiřazovali hodnoty proměnným.

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

$web; // tato proměnná obsahuje pole s 5 prvky

// pro zobrazení jednoho z prvků pole stačí zadat index v poli
echo $web; // vypíše PHP

Jednorozměrné pole

INDEXOVÉ POLE

Výše jsme se s webovým programováním podívali pouze na příklad jednorozměrného pole.
Tímto způsobem se vytváří jen zřídka. Spíše vizuálně ukazuje strukturu pole. Častěji se uchýlí k jiné metodě.

$web=array("HTML","CSS","JavaScript","PHP","MySQL");
echo $web; // vypíše "HTML"
echo $web; // vypíše "JavaScript"
echo $web; // vytiskne "PHP"

Pokud chcete nastavit hodnoty indexu, musíte je zadat následovně. Podepsat => je ukazatel pro přiřazení indexu k hodnotě nebo naopak k hodnotě indexu.

$web=array(1=>"HTML",2=>"CSS",3=>"JavaScript",4=>"PHP",5=>"MySQL");
echo $web; // HTML
echo $web; // CSS
echo $web; //PHP
V příkladu začíná počítání od 1. Proměnná s indexem 0 je tedy prázdná.

V následujícím příkladu nebudeme určovat index.

$day="pondělí"; // index 0
$day="úterý"; // 1
$day="středa"; // 2
$day="čtvrtek"; // 3
$day="Pátek"; // 4
Můžete vidět, že sekvenční plnění probíhá od začátku.

ASOCIATIVNÍ POLE

Často je potřeba vytvořit písmenný index pro prvek pole. Jak jsem uvedl výše, takový rejstřík se musí skládat z latinských písmen a název musí být uzavřen v uvozovkách. Podívejme se na příklad člověka.

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

$uživatel; // proměnná $user obsahuje pole se 4 prvky s písmennými indexy

// zobrazí prvek pole s uvedením jeho písmenného indexu
echo $web["jméno"]; // vytiskne "Pavel"
Jak vidíte, vše je docela jednoduché. Uvádíme pouze hodnotu indexu.

Dvourozměrné pole

Pokud vám unikla první část s jednorozměrným polem, důrazně vám doporučuji si ji přečíst.
Jednoduše řečeno, je to pole v poli. To znamená, že prvky velkého pole jsou různé. Taková pole značně zpomalují práci skriptu, načítání RAM, takže pro rychlé zpracování takových skupin dat byly vytvořeny Databáze (Co je databáze?), ale o tom později. Podívejme se na příklad dvourozměrného pole.

// pole s názvy částí světa
$m = array("Evropa","Asie","Afrika","Amerika","Austrálie a Oceánie");

// pole s názvy zemí
$s = array("Rusko","Ukrajina","Bělorusko","Kazachstán");

// pole s názvy velkých písmen
$с = array("Moskva","Kyjev","Minsk","Astana");

// vytvoří dvourozměrné pole Geography
$geografie = pole($m, $s, $c);
?>
Zahrnutá pole, jak jste si všimli, mohou mít různý počet prvků. Z části o jednorozměrných polích vyplývá, že každý prvek pole může mít index. Přiřaďme tedy každému zahrnutému poli jinou hodnotu.

Chcete-li to provést, rozbalte poslední řádek a napište jej následovně.

$geography = array("Části světa"=>$m, "Země"=>$s, "Hlavní města"=>$s);

Funkce pro práci s poli php

Pro každého- cyklická funkce pro práci s poli, ve které je počet cyklů roven počtu prvků pole.

Vypadá to takto: PHP kód

Foreach (pole jako $key=>$value)
týmy;
No hned ukázka práce

// vytvořte pole se slavným IT
$names["Ritchie"] = "Dennis";
$names["Thompson"] = "Ken";
$names["Gates"] = "Bill";
$names["Jobs"] = "Steve";

Foreach ($names jako $key => $value) (
echo "$hodnota $klíč";
}
?>
Skript se zobrazí na obrazovce

Dennis Ritchie
Ken Thompson
Bill Gates
Steve Jobs
Počet- funkce, která vrací počet prvků v poli.

Echo count($names); // v našem příkladu s IT vrátí hodnotu 4
Seřadit- funkce, která třídí prvky pole. Vhodné pro číselné hodnoty indexu.
Arsort- funkce, která třídí prvky pole v opačném pořadí.

Seřadit($jména); // seřadí v pořadí. Je vhodné, pokud jsou v Indexu čísla
arsort($jména); // řazení v obráceném pořadí. To znamená, že podle indexů budou prvky v pořadí 3, 2, 1, 0
Nenastaveno- funkce, která odstraní prvek pole.

Unset($array); // odstranění prvku pole s indexem 2
unset($array); // smazání celého pole
Array_search- vyhledávací funkce v poli. Má dva argumenty. Jednoduše řečeno, má array_search("co", kde)

$animals="pes";
$animals="kočka";
$animals="pták";
echo array_search("kočka",$zvířata); // zobrazí index prvku - číslo 2
Zamíchat- funkce, která zamíchá klíče hodnot pole.

Shuffle($animals); // uspořádání prvků v náhodném pořadí
Děkuji za pozornost!

Často potřebujete iterovat všechny prvky pole PHP a provést nějakou operaci s každým prvkem. Můžete například vypsat každou hodnotu do tabulky HTML nebo dát každému prvku novou hodnotu.

V této lekci se podíváme na konstrukci foreach při organizování smyčky přes indexovaná a přidružená pole.

Procházet hodnoty prvků

Nejjednodušším případem použití foreach je procházet hodnoty v indexovaném poli. Základní syntaxe:

Foreach ($array jako $value) ( ​​​​ // Udělejte něco s $value ) // Zde se kód spustí po dokončení cyklu

Například následující skript iteruje seznam ředitelů v indexovaném poli a vytiskne jméno každého z nich:

$directors = array("Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang"); foreach ($directors jako $director) ( echo $director . "
"; }

Výše uvedený kód vypíše:

Alfred Hitchcock Stanley Kubrick Martin Scorsese Fritz Lang

Smyčka klíč-hodnota

A co přidružená pole? Při použití tohoto typu pole často potřebujete mít přístup ke klíči každého prvku a také k jeho hodnotě. Konstrukce foreach má způsob, jak problém vyřešit:

Foreach ($array jako $key => $value) ( ​​​​ // Udělejte něco s $key a/nebo $value ) // Zde se kód spustí po dokončení cyklu

Příklad uspořádání smyčky prostřednictvím přidruženého pole s informacemi o filmech, zobrazení klíče každého prvku a jeho hodnoty v HTML seznamu definic:

$movie = array("title" => "Zadní okno", "ředitel" => "Alfred Hitchcock", "rok" => 1954, "minuty" => 112); echo"

"; foreach ($film jako $key => $value) ( ​​echo "
$klíč:
"; echo"
$hodnota
";) echo"
";

Po spuštění tento skript vypíše:

Název: Zadní okno režie: Alfred Hitchcock rok: 1954 minut: 112

Změna hodnoty prvku

Co takhle změnit hodnotu prvku, když prochází smyčka? Můžete zkusit tento kód:

Foreach ($myArray jako $value) ( ​​​​$value = 123; )

Pokud jej však spustíte, zjistíte, že hodnoty v poli neměň. Důvodem je, že foreach pracuje s kopie hodnoty pole, nikoli s originálem. Tímto způsobem zůstane původní pole nedotčeno.

Chcete-li změnit hodnoty pole, které potřebujete odkaz ke smyslu. Chcete-li to provést, musíte před proměnnou value v konstrukci foreach vložit znak &:

Foreach ($myArray jako &$value) ( ​​​​$value = 123; )

Například následující skript prochází každý prvek (jméno ředitele) v poli $directors a používá funkci PHP explode() a konstrukci seznamu k záměně jména a příjmení:

$directors = array("Alfred Hitchcock", "Stanley Kubrick", "Martin Scorsese", "Fritz Lang"); // Změňte formát názvu pro každý prvek foreach ($directors jako &$director) ( list($firstName, $lastName) = explode(" ", $director); $director = "$lastName, $firstName"; ) unset ( $ředitel); // Vytiskne konečný výsledek foreach ($directors jako $director) ( echo $director . "
"; }

Skript vypíše:

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

Všimněte si, že skript volá funkci unset() k odstranění proměnné $director po dokončení první smyčky. To je dobrý postup, pokud plánujete použít proměnnou později ve skriptu v jiném kontextu.

Pokud odkaz neodstraníte, vystavujete se riziku dalšího spouštění kódu, který náhodně odkazuje na poslední prvek v poli ("Lang, Fritz"), pokud budete nadále používat proměnnou $director, což povede k nezamýšleným následkům!

souhrn

V tomto tutoriálu jsme se podívali na to, jak použít konstrukci PHP foreach k procházení prvků pole. Byly zváženy následující problémy:

  • Jak procházet prvky pole
  • Jak získat přístup ke klíči a hodnotě každého prvku
  • Jak používat odkaz ke změně hodnot, když procházíte smyčkou