Autor Zpráva
ciba
Profil *
Ahoj,
mam pole, projizdim a zpracovavam jeho hodnoty pomoci cyklu while ... list ... each
Klíče pole nejsou číselné a mohou se vyskytnout téměř jakékoli ...
potřebuju během smyčky zjistit, že se provádí poslední cyklus, pro ten platí jiná pravidla zpracování hodnot ...

zatím to řeším takhle, ale moc se mi to nelíbí ... prosím elegantnější a rychlejší řešení ...

$=0;
while (list($key,$val) = each($pole)) {
$i++;


if($i==count($pole) { jine zpracovani }
else { standard. zpracovani }

}


diky
Hondrej
Profil *
foreach($obsah as $key => $value) 

{
}

Třeba??
Hondrej
Profil *
Kdyby to nebylo jasne, tak:
http://php.vrana.cz/prochazeni-poli.php
http://php.ftp.cvut.cz/manual/cs/control-structures.foreach.php
ciba
Profil *
Hmno, vidím, že jsem zamrzl na PHP3 :)
ale pořád mi z toho nějak nedochází, jak zjistím, že jsem na posledním prvku ... :/
Hondrej
Profil *
foreach je fce urcena prave pro praci s jednotlivymi prvky pole. Muzete uvest konkretne to, co potrebujete? Testovani, ze jsme dosli na konec pole mi prijde zbytecne a nedokazi si vybavit priklad, kde bychom to potrebovali.
ciba
Profil *
mno,
potřebuju projít pole a se všemi hodnotami udělat totéž, kromě té poslední, s tou potřebuju udělat něco jiného ...

asi nějak takhle

foreach ($pole as $key=>$val) {

if("TOHLE JE POSLEDNI PRVEK POLE") echo "Prvek $key je posledni v tomto poli";
else echo "Prvek $key je jednim z mnoha neposlednich prvku pole";

}
jozob
Profil
ciba
Predpokladám, že pole prechádzaš v nejakom cykle. Dajme tomu, že premenná, ktorá predstavuje čítač je $i, takže:
if(isset($pole[$i+1])) { ... } //vráti TRUE, ak je nasledujúci kľúč definovaný
Hondrej
Profil *
Ja bych na to sel asi takto:
for(i=1;i<(count(pole)-1);i++) // budeme brat vsechny prvky pole krome posledniho.
{
neco udelej
}
a k poslednimu pristupujes individualne.
ciba
Profil *
Predpokladám, že pole prechádzaš v nejakom cykle. Dajme tomu, že premenná, ktorá predstavuje čítač je $i, takže

no, to se mi libi, i by to fungovalo, ale $keys nejsou ciselne,
to pole vypada treba takto

$pole=array("jablka"=>10,"nabidka"=>"modra","neco"=>"jineho")

a v tom cyklu citac nepouzivam ...
ciba
Profil *
Hondrej[
když ten program neví, jaký je $key toho posledniho prvku ... :(
Hondrej
Profil *
Ja musim na x dni zmizet, jinak bych ti rad pomohl. A musim se priznat, ze jsem se ve tvych pozadavcich ztratil.
Peca
Profil
Je to jenom takový nápad:

reset($pole);
while ($key=key($pole);)
{
... normalni zpracovani ...
if (next($pole))
continue;
else - nemusi byt
... zpracovani posledniho ...
}
předpokládá, že je tam víc, než jeden prvek
prvek je dostupný přes $pole[$key]
ciba
Profil *
Peca
No,to vypadá dobře, zkusím to přizpůsobit mé potřebě , každopádně díky za to ...
díky všem zúčastněným ..
Toto téma je uzamčeno. Odpověď nelze zaslat.

0