PHP - foreach a asociatívne polia



St, 20/08/2008 - 23:39 od admin

Azda v každom programovacom jazyku je akási obdoba cyklu for. V PHP a v pár iných je aj verzia s malým vylepšením - foreach. V článku sa pokúsim uviesť príklady, prípady použitia a výhody cyklu foreach.

Tento cyklus v podstate zjednodušuje zápis "for". Je veľmi silnou zbraňou programátora v prípade, že potrebujeme prechádzať a spracovávať nejaké polia.
Nasledujúci kód je klasická iterácia hodnotami poľa cyklom for:

// začiatok
$pole = array(0=>"Milan", 1=>"Adam", 2=>"Eva");
for ($i=0; $i< count($pole); $i++)
{
 print "Meno ".($i+1).": ".$pole[$i]."
"; } // koniec

Výpis:
// začiatok
Meno 1: Milan
Meno 2: Adam
Meno 3: Eva
// koniec

To isté môžeme zapísať aj za pomoci foreach:

// začiatok
$i=0;
foreach($pole as $val)
{
 $i++;
 print "Meno ".$i.": ".$val."
"; } // koniec

Zápisom sa automaticky prechádzali hodnoty poľa a zapisovali do premennej $val . Všimnite si, že sme v tomto prípade nepoužívali kľúče - indexi poľa. Pre ich výpis sme použili inkrementovanú premennú $i . Cyklus foreach má aj svoju rozšírenú podobu, ktorá pracuje rovnako aj s kľúčmi aj hodnotou prvku v poli:

// začiatok
foreach($pole as $key => $val)
{
  print "Meno ".($key+1).": ".$val."
"; } // koniec

Tento kód teda vypíše rovnaký výsledok. Každou možnou iteráciou sa do premennej $key uloží hodnota indexu prvku a do premennej $val už potom samotná hodnota prvku poľa. Tento zápis je veľmi často používaný pri spracovávaní asociatívnych polí. Umožňuje abstraktne spracovať aj kľúče aj hodnoty poľa.

Nasledujúci príklad vypíše odkazy použitím kľúčov a hodnôt preddefinovaného poľa:

// začiatok
 $links = array(
   'http://www.milanvojta.sk' => 'Milan Vojta',
   'http://www.google.sk' => 'Google',
   'http://www.drupal.sk' => 'Drupal',
  );

  foreach($links as $address => $title)
  {
   print "<"."a href=".$address.">".$title."
"; } // koniec

Dúfam, že som vám priblížil použitie tohoto cyklu a možno aj vnukol nejaký nápad ako a kde ho využiť.

Komentáre

Pete napísal adult friend finder review (bez overenia)
I would like to see napísal Satellite Broadband (bez overenia)

Poslať nový komentár

Nepovinné. Obsah tohto poľa je súkromný a nebude verejne zobrazený.
  • Webové a e-mailové adresy sú automaticky zmenené na odkazy.
  • Povolené HTML značky: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Riadky a odstavce sa zalomia automaticky.

Viac informácií o možnostiach formátovania

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.

Najnovšie články a náhodné obrázky

Firemný CMS systém

Ako firemný Web CMS pre riadenie podnikového obsahu je možné použiť aj implementáciu redačného systému drupal. Funkcie systému pre riadenie podnikového obsahu:

23. 06. 2010 - Drupal - 15 komentárov

Drupal implementácia

Drupal implementácia - dynamické stránky, nasadenie CMS drupal

22. 06. 2010 - Služby - 0 komentárov

E-shop

E-shop

22. 06. 2010 - Služby - 0 komentárov

Portálové riešenia

Portálové riešenia

22. 06. 2010 - Služby - 0 komentárov


Contact me