Autor Zpráva
george[06]
Profil *
Pomůže mi někdo vylepšit tento cyklus, prosím? Mám v poli jmeno[] vložená jména a některá z nich se mohou opakovat. Tato jména chci vypsat do řetězce ale tak, aby případné opakující se jméno bylo vypsáno v řetězci pouze jednou... Lámu si s tím hlavu a zatím jsem nic lepšího nevymyslel...


$PocetZaznamu=count(jmeno)
for ($i=0; $i <= $PocetZaznamu; $i++):
if ($jmeno[$i]==$jmeno[0]) $vypis.=$jmeno[0];
else $vypis.=$jmeno[$i];
if ($i <= ($PocetZaznamu-1)) $vypis.=", ";
endfor;
BaTeCzKo
Profil
Viz. http://cz.php.net/manual/en/function.array-unique.php
george[06]
Profil *
BaTeCzKo
Díky moc! O té funkci jsem vůbec nevěděl :-/
george[06]
Profil *
Měl bych ještě dotaz k řešenému problému. Už se mi do pole vypisují jen unikátní záznamy. Mám ale problém v tom, že pole se plní znovu po každém průchodu cyklem a v dalších výpisech jsou tedy "navíc" i záznamy z předchozího výpisu... Zkoušel jsem si různě hrát s funkcí reset(pole), ale výsledek je stále stejný. Nevíte, jak se to dá řešit? Dají se odstranit předchozí hodnoty z pole a znovu jej naplnit novými? Nebo musím při každém průchodu cyklem vytvořit nové pole (s jiným názvem)?
krteczek
Profil
no reset nastaví pole na první prvek v poli, pokud bys chtěl pro každý průchod novou sadu záznamů tak bys musel vytvořit pole s ještě jedním sloupcem:

$n = 10;
$x = array();
for($i = 0; $i < $n; $i++)
{
$input = vrat_pole();
$x[$i] = array_unique($input);//muze byt i $x[]
}

krteczek
george[06]
Profil *
krteczek
Děkuju. Takže se jedná o tzv. vícerozměrné pole a k unikátním záznamům se pak dostanu pomocí funkce foreach...
Toto téma je uzamčeno. Odpověď nelze zaslat.