Kontakty

Príkaz FOREACH LANGE PHP. Robiť a foreach cykly. Zmeňte index interného poľa počaste

Často potrebujú prejsť všetky prvky poľa PHP. A stráviť určitú prevádzku na každom prvku. Môžete napríklad vydať každú hodnotu v tabuľka HTML Alebo nastavte každý prvok novú hodnotu.

V tejto lekcii sa pozrieme na design Foreach pri organizovaní cyklu na indexovaných a pridružených poliach.

Cyklus podľa hodnôt prvkov

Najjednoduchším prípadom foreach je organizácia cyklu podľa hodnôt v indexovanom poli. Hlavná syntax:

Foreach ($ pole ako $ hodnota) (// urobte čokoľvek s hodnotou $) // tu kód sa vykonáva po ukončení cyklu

Napríklad nasledujúci skript prechádza prostredníctvom zoznamu riaditeľov v indexovanom poli a zobrazí názov každého:

$ režiséri \u003d pole ("Alfred Hitchcock", "Stanley Kubrick", "Martin Scornsees", "Fritz Lang"); Foreach ($ režiséri ako $ režisér) (režisér ECHO $. "
"; }

Zobrazí sa vyššie uvedený kód:

Alfred Hitchcock Stanley Kubrick Martin Scorsese Fritz Lang

Cyklus na tlačidlách a hodnotách

A čo súvisiace polia? Pri použití tohto typu polí je často potrebné mať prístup k kľúču každého prvku, ako aj na jeho hodnotu. Foreach Design má spôsob, ako vyriešiť úlohu:

FOREACH ($ ARRAY AS $ KEY \u003d\u003e $ HODNOTENIE) (// Urobte si niečo s $ kľúčom a / alebo s $ hodnota) // tu kód sa vykonáva po ukončení cyklu

Príkladom organizácie cyklu na pridruženom poli s informáciami o filme, zobrazí kľúč každého prvku a jeho hodnotu Zoznam HTML Definície:

$ movie \u003d pole ("titul" \u003d\u003e "zadné okno", "režisér" \u003d\u003e "Alfred Hitchcock", "Rok" \u003d\u003e 1954, "minuty" \u003d\u003e 112); Echo "

"; Foreach ($ film ako $ kľúč \u003d\u003e $ hodnotu) (echo"
$ Kľúč:
"; Echo"
hodnota $
";) Echo"
";

Tento skript odstráni:

Názov: Zadný okno Riaditeľ: Alfred Hitchcock Rok: 1954 minút: 112

Zmena hodnoty prvku

A aký je prípad zmeny hodnoty prvku, keď prechádza cyklus? Môžete skúsiť tento kód:

Foreach ($ myarray ako $ hodnotu) ($ hodnota \u003d 123;)

Avšak, ak ho spustíte na vykonanie, zistíte, že hodnoty v poli nemeň. Dôvodom je, že foreach pracuje kópia Masívne hodnoty a nie s originálom. Pôvodné pole teda zostáva nedotknuté.

Zmena hodnôt poľa, ktoré potrebujete spojenie o význame. Ak to chcete urobiť, položte znamenie a pred variabilnou hodnotou v dizajne FOREACH:

Foreach ($ myarray as & $ hodnota) ($ hodnota \u003d 123;)

Napríklad ďalší skript prechádza cez cyklus každú položku (názov režiséra) v poli $ riaditeľov a používa funkcia PHP Explode () a dizajn zoznamu pre premenné meno a priezvisko:

$ režiséri \u003d pole ("Alfred Hitchcock", "Stanley Kubrick", "Martin Scornsees", "Fritz Lang"); // Zmeňte názov mena pre každý foreach prvok ($ režiséri as & $ rerector) (zoznam ($ firstName, $ lastName) \u003d explodovať ("", $ rerector); $ režisér \u003d "$ lastName, $ firstName"; ) Unset (režisér $); // Zobrazenie konečného fondu Foreach ($ režisérov ako $ režisér) (režisér ECHO $. "
"; }

Skript odstráni:

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

Všimnite si, že skript zavolá funkciu UnseTate () na odstránenie premennej karty $ po dokončení prvého cyklu. Toto je dobrá prax, ak plánujete použiť premennú neskôr v skripte v inom kontexte.

Ak neodstránite odkaz, to znamená, že riziko pre ďalšie vykonanie neformálneho referenčného kódu na posledný prvok v poli ("Lang, Fritz"), ak ďalej používate variabilný riaditeľ $, ktorý bude viesť k nepredvídané dôsledky!

Zhrnutie

V tejto lekcii sme sa pozreli na to, ako používať dizajn Forcha PHP na organizovanie cyklu na prvkach poľa. Otázky boli preskúmané:

  • Ako organizovať cyklus na prvkach poľa
  • Ako pristupovať k kľúču a hodnotu každého prvku
  • Ako používať odkaz na zmenu hodnôt pri prechode cyklu

Cyklus Foreach PHP môže byť použitý nasledovne:

foreach ($ array_name ako $ hodnota) (// kód, ktorý by mal byť vykonaný)

fOREACH ($ ARRAY_NAME AS $ KEY \u003d\u003e $ HODNOTY) (// // Kód, ktorý by mal byť vykonaný)

Príklad použitia foreachového cyklu s číselným pole

V tomto príklade vytvoríme pole piatich prvkov numerické hodnoty. Cyklus Foreach PHP sa použije na vykonanie iterácie tohto poľa. Vo vnútri cyklu foreach sme použili ECHO na zobrazenie hodnoty poľa:

Zobraziť demo verziu a kód

Príklad s kľúčmi a hodnotami poľa

Tento príklad opisuje iný spôsob, ako používať foreach php cyklus. Aby sme to urobili, vytvorili sme asociatívne pole troch prvkov. Zahŕňa mená zamestnancov ( ako kľúče) a súčet mzdy (ako hodnoty):

Zobraziť demo verziu a kód

Príklad zmeny hodnoty prvku poľa v cykle foreach

Môžete tiež C. pomocou PHP. Foreach Foreach Môžete zmeniť hodnoty prvkov poľa. Urobte to, použite "&" pred "$" pre premennú hodnotu. Napríklad:

& $ value_of_ement

Hodnota sa zmení. Aby bolo jasnejšie, zvážte nasledujúci príklad.

V tomto príklade sme vytvorili číselné pole piatich prvkov. Potom sa na zobrazenie hodnôt prvkov použila foreachová slučka.

Potom vytvoril ďalší cyklus foreach, kde "&" sa pridáva pred $ value_of_element. V kučeravých zátvorkách pridelíme nové hodnoty prvky poľa.

Ak chcete zobraziť rozdiel pred a po pridelení nových hodnôt, pole sa zobrazí pomocou funkcie Print_R ().

Zobraziť demo verziu a kód

Aký je cyklus foreach PHP?

Cyklus foreach PHP sa používa na prácu s polevou. Prejde každý prvok.

Môžete tiež použiť na prácu s poliam cyklu. Napríklad pomocou vlastnosti dĺžky na získanie dĺžky poľa a potom ho aplikujte ako max. Ale Foreach to jednoduchšie, pretože je určený na prácu s poliami.

Ak pracujete s MySQL, potom pre to tento cyklus Vhodné ešte viac. Môžete napríklad vybrať niekoľko riadkov z databázovej tabuľky a odovzdať ich do poľa. Potom, čo používate cyklus foreach, prejdite cez všetky prvky poľa s vykonaním akejkoľvek akcie.

Všimnite si, že môžete použiť cyklus foreach s pole alebo len s objektom.

Uplatňovanie cyklu foreach

V PHP existujú dva spôsoby, ako používať foreach php cyklus. Obaja sú opísané nižšie.

  • Syntax prvej metódy používania:

fOREACH ($ ARRAY_NAME AS $ HODNOTY) (ECHO $ \u200b\u200bEUR

Zároveň musíte zadať názov poľa, a potom premennú hodnotu $.

Pre každú iteráciu je hodnota aktuálneho prvku priradená premennej hodnote $. Po dokončení iterácie je premenná priradená hodnota nasledujúcej položky. A tak, kým nezmiznú všetky prvky poľa.

  • Syntax druhej metódy ( PHP Foreach ako kľúčová hodnota):

To je vhodné pre asociatívne polia, v ktorých sa používajú páry kľúčov / hodnôt.

Počas každej iterácie bude hodnota aktuálneho prvku priradená k premennej $ value_of_element. Okrem toho je kláves prvok priradený premennú $ key_of_element.

Ak pracujete s číselnými poliami, môžete použiť prvú metódu, v ktorej nie sú potrebné klávesy prvkov.

Táto publikácia je preklad článku " PHP Foreach Loop 2 spôsoby, ako ho používať"Vypracované priateľským projektovým tímom

Design Foreach je rôznorodosť, ktorá je zahrnutá v jazyku, aby sa zjednodušila generácia prvkov poľa. Existujú dva typy príkazov foreach určených na odlišné typy Polia:

foreach (pole ako $ element) (

foreach (pole ako $ \u003d\u003e $ element) (

Napríklad pri vykonávaní nasledujúceho fragmentu:

$ Menu \u003d arrau ("cestoviny", "steak", "zemiaky", "ryby", "hranolky");

foreach ($ menu ako $ položky)

vytlačiť "$ položky
";

nasledujúci výsledok bude odvodený:

V tomto príklade by sa mala venovať pozornosť dvoma okolnostiam. Po prvé, design Foreach sa automaticky vráti na začiatok poľa (v iných cyklických štruktúrach, ktoré sa nevyskytuje). Po druhé, nie je potrebné explicitne zvýšiť počítadlo alebo inak prepnúť na ďalší prvok poľa - to sa deje automaticky pri každej iterácii Foreach.

Druhá možnosť sa používa pri práci associatívne polia:

$ wine_inventary \u003d Array (

"MERLOT" \u003d\u003e 15,

"Zinfandel" \u003d 17,

"Sauvignon" \u003d\u003e 32

foreach ($ wine_inventory as $ i \u003d\u003e $ idic_count)

vytlačiť "$ Items_count fľaše $ I
";

V tomto prípade sa výsledok vyzerá takto:

15 fliaš Merlot

Zostáva 17 fliaš zinfandul

Zostávajúcich 32 fliaš SAUvignon

Ako je možné vidieť z vyššie uvedených príkladov, design Foreach zjednodušuje prácu s poliami.

Princíp činnosti konštrukcie prepínača je čiastočne pripomenutia, ak je výsledok získaný pri výpočte výrazu skontrolovať podľa zoznamu potenciálnych zhody.

To je obzvlášť vhodné pri kontrole niekoľkých hodnôt, pretože použitie spínača robí program viac vizuálny a kompaktný. Formát príkazu na zdieľaný prepínač:

prepínač (výraz) (

prípad (stav):

prípad (stav):

Kontrolka stavov je uvedená v zátvorkách po kľúčovom pred kľúčové slovo. Výsledok jeho výpočtu je v porovnaní s podmienkami v sekciách. Keď sa zistí zhoda, vykonáva sa blok príslušnej časti. Ak sa náhoda nezistí, vykoná sa jednotka voliteľnej predvolenej časti.

Ako sa zobrazí v nasledujúcich kapitolách, jedna z najsilnejších strán PNP je spracovať vstup používateľa. Predpokladajme, že program zobrazí rozbaľovací zoznam s niekoľkými možnosťami a každé riadky riadkov zodpovedá niektorý príkaz vykonaný v samostatnom prípade. Implementácia je veľmi vhodná na vytvorenie pri použití príkazu vypínača:

$ user_input \u003d "recepty"; // tím vybraný užívateľom

prepínač ($ Uster_Input):

prípad ("Hľadať"):

vytlačiť "Prejdite" S Vykonajte vyhľadávanie! ";

prípad ("Slovník"):

vytlačiť "Aké slovo by ste chceli pozrieť?";

prípad ("Recepty"):

vytlačiť "Tu je zoznam receptov ...";

tlač "Tu je menu ...";

Ako je možné vidieť z zobrazeného fragmentu, príkazový príkaz poskytuje jasný a vizuálny kód organizácie. Premenná zadaná v stave prepínania (v tento príklad - $ user_input) v porovnaní s podmienkami všetkých nasledujúcich prípadov. Ak hodnota zadaná v tejto časti zhoduje s hodnotou porovnávanej premennej, vykoná sa blok tejto časti. Príkaz prerušenia zabraňuje kontrole ďalších rezov a dokončuje vykonanie konštrukcie prepínača. Ak sa nevykonáva žiadna z overených podmienok, je aktivovaná voliteľná predvolená časť. Ak chýba predvolená časť a nie je vykonaná žiadna z podmienok, príkaz spínača je jednoducho dokončený a program pokračuje na nasledujúcom príkazi.

Musíte si uvedomiť, že v neprítomnosti príkazu prelomenia v prípade prípadu sekcie (pozri nasledujúcu časť), prepínač pokračuje s nasledujúcim príkazom, kým sa nezobrazí príkaz prerušenia alebo na konci konštrukcie prepínača. Nasledujúci príklad demonštruje dôsledky absencie zabudnutého tímového prestávky: $ hodnotu \u003d 0,4;

prepínač ($ hodnota):

tlač "Hodnota je 0,4
";

tlač "Hodnota je 0,6
";

tlač "Hodnota je 0,3
";

vytlačiť "DIDN" T Vyberte si hodnotu! ";

Výsledok vyzerá takto:

Absencia príkazu prestávky viedol k tomu, že v sekcii, kde bola nájdená náhoda, ale aj príkaz tlače v nasledujúcej časti. Vykonanie príkazov konštrukcie spínača boli prerušené kvôli príkazu spínača podľa druhého príkazu tlače.

Voľba medzi prepínačom a ak príkazy prakticky nemá vplyv na výkon pro-gramu. Rozhodnutie o používaní konkrétneho dizajnu je pomerne osobné programátor.

Príkaz zlomu okamžite preruší vykonanie dizajnéra, zatiaľ čo sa nachádza, v ktorom sa nachádza. Tento príkaz bol už uvedený v predchádzajúcej časti, ale prerušenie aktuálneho cyklu nevyčerpáva funkcie Break Team. V všeobecný Syntax prestávky vyzerá takto:

Voliteľný parameter N určuje počet úrovní riadiacich štruktúr vyplnených príkazom prelomenia. Napríklad, ak je príkaz na prestávku investovať do dvoch, zatiaľ čo príkazy a po prerušení stojan na obrázku 2, nastáva okamžitý výstup z oboch cyklov. V predvolenom nastavení je n rovná 1; Výstup na jednu úroveň môže byť označená tak explicitnou indikáciou 1 a príkazom preparania bez parametra. Upozornenie: Príkaz i F sa nevzťahuje na počet riadiacich konštrukcií prerušených príkazom prelomenia.

Robiť a foreach cykly

Cyklus. . . Zatiaľ čo

Cyklus robiť ... zatiaľ čo V C # je verzia, zatiaľ čo s perverterom. To znamená, že stav cyklu sa skontroluje po telách cyklu. V dôsledku toho cykly robia ... a zároveň sú vhodné v tých situáciách, keď sa jednotka prevádzkovateľov musí vykonať aspoň jeden deň. Nižšie je všeobecná forma prevádzkovateľa cyklu:

robiť (prevádzkovatelia;), zatiaľ čo (stav);

Ak existuje len jeden operátor, priblížené zátvorky v tomto formulári sú voliteľné. Napriek tomu sa často používajú na to, aby robili - zatiaľ čo dizajn viac čitateľnejší a nie zmätený s tým, že ide o dizajn cyklu. DO-Kým cyklus sa vykonáva, kým podmienený výraz nie je pravdivý. Ako príklad použitia do-zatiaľ čo cyklus môžete priniesť nasledujúci program, ktorý vypočíta počet čísel:

Pomocou systému; pomocou systému.collections.genic; Pomocou systému.Linq; Pomocou systému.Text; Názov mespace ConzoleApplication1 (String Args (skúste (String Args) (skúste (// Vypočítajte faktoriál číslo Int I, výsledok \u003d 1, NUM \u003d 1; konzola.writeline ("Zadajte číslo:"); I \u003d Int.Parse (Konzola .Readline ()); Console.write ("n-nfactorial (0) \u003d", i); do (výsledok * \u003d num; num ++;), zatiaľ čo (num

Cyklus foreach

Cyklus foreach Slúži na cyklické odvolanie na prvky zberu, čo je skupina objektov. C # definuje niekoľko typov zbierok, z ktorých každý je pole. Nižšie je spoločná forma operátora foreach cyklu: \\ t

operátor ForEach (typ_name_name typu v kolekcii);

Tu typ Názov_Name_TSIKLA Označuje typ a názov premennej kontroly cyklu, ktorý prijíma hodnotu nasledujúceho prvku zberu pri každom kroku vykonávania foreachového cyklu. Zbierka označuje cyklicky vypočúvanú zbierku, ktorá ďalej je pole. V dôsledku toho musí typ premennej cyklu zodpovedať typu prvku poľa. Okrem toho môže byť typ označený kľúčové slovo var. V tomto prípade kompilátor definuje typ premennej cyklu, založená na type prvku poľa. To môže byť užitočné pre prácu s určitým druhom požiadaviek. Ale spravidla typ je výslovne uvedený.

Prevádzkovateľ foreach cyklu pôsobí takto. Keď začína cyklus, zvolí sa prvý prvok poľa a premenná cyklu je priradená. Pri každom kroku nasledujúcej iterácie je zvolený nasledujúci prvok poľa, ktorý je uložený v premennej cyklu. Cyklus je dokončený, keď budú vybraté všetky prvky poľa.

Foreach Loop vám umožňuje prejsť každý prvok zberu (objekt reprezentujúci zoznam iných objektov). Formálne, takže niečo môže byť považované za zbierku, malo by to podporovať ienunerovateľné rozhranie. Príklady zbierok môžu slúžiť ako C # polia, triedy zbierok zo systémového priestoru System.Collection, ako aj triedy zbierok používateľov.



Páči sa vám článok? Zdieľaj to