LIST a EACH

6 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Můžete mi vysvětlit funkce příkazů list a each. V každym manuálu, co jsem čet je to vysvětlovaný strašně zmateně. Díky, bude to pro vás určitě hračka.
  2. Odpovídám ti, protože jsem to kdysi taky z manuálu nemohl nějak přežvýkat. Tyto funkce jsou z kategorie funkcí na procházení polí. Pole lze procházet prvek po prvku jako např. soubor řádek po řádku. Stejně jako u souboru existuje pro to tzv. vnitřní ukazatel, který ti říká, kde se právě nacházíš (na kterém prvku pole). Funkce each() - z anglického každý - prochází všechny prvky pole. Lépe řečeno při jejím spuštění se vrátí nformace o souasném prvku a pak se posune ukazatel na následující prvek. Takže jsi třeba na prvku číslo 2 a použiješ: $treti_prvek = each($pole); echo $treti_prvek['key']." - ".$treti_prvek['value']; Toto ti vypíše klíč 3. prvku a jeho hodnotu. K projítí celého pole stačí: reset($pole); // vrati ukazatel na zacatek pole while ($prvek = each($pole)) { echo $prvek['key']." - ".$prvek['value']."<BR>\n"; } Funkce list() rozdělí pole na několik hodnot. V případě s procházením pole ji využiješ takto: each() ti vrátí pole informací o poli které procházíš (key, value). Pomocí list() jem užeš šikovně zpracovat: reset($pole); while (list($nazev_prvku, $hodnota_prvku) = each($pole)) { echo $nazev_prvku." - ".$hodnota_prvku."<BR>\n"; }
  3. > Takže jsi třeba na prvku číslo 2 a použiješ na 3. prvku
  4. jojo, tyhle konstrukce byly zaklad pro praci s assoc. polema v php3, v php4 je potrebujes malokdy.. misto while (list($nazev_prvku, $hodnota_prvku) = each($pole)) muzes pouzit foreach($pole as $hodnota_prvku) pripadne foreach($pole as $nazev_prvku=>$hodnota_prvku)
  5. Uz len mala poznamocka na zaver. Ak prechadzas polia pomocou each() a ukazatel je napriklad na tretej hodnote pola zacina sa od tejto hodnoty. Preto je rozumne pouzivat v spojeni s touto funkciou aj funkciu reset(), ktora presunie ukazatel na prvu hodnotu pola. Pri foreach tato praca odpada, pretoze tento prikaz to robi automaticky.
  6. pravda, pravda... :-) S tím, že nejprve posune ukazatel a pak vrati prvek jsem to nesmyslně přehodil, ale pak jsem to myslím opravil > ...při jejím spuštění se vrátí nformace o souasném prvku a pak se posune ukazatel... Ohledně foreach(), úplně jsem na něj zapomněl. Abych se přiznal, pole už jsem neprocházel hodně dlouho (ostuda :-), a tak jsem mu tam dal kousky staršího zdrojáku.

← Zpět na všechna témata