a) Vygenerujes pole 0-3. Nahodne ho promichas.
b) Vygenerujes pole 0-3. Nahodne z nej vyberes hodnotu. A z pole ji odstranis. Atd, dokud je pole prazdne.
Funkce x = random(n) je snad v kazdem jazyku...
Příspěvky odeslané z IP adresy 193.84.198.–
Ted premyslim, jestli to moje chapes. Ja tm mam prave cyklus, ktery se vnoruje do hloubky toho pole. Cela ta finta spociva v tom, ze pouzivam
foreach($list as $row)
{
$pom[ $id ] = &$pom[...]; nebo tam muze byt &$row
$pom[ $id ] = &$out[...];
Pro tebe je asi lepsi pouzit ten filter (mne se s tim nechtelo drbat, protoze sem to nikdy nepouzil).
Ten & odkazuje na pointer. Ty bys musel cely ten cyklus udelat tak, aby se zanoroval sam do sebe. Tak bys z cyklu udelal funkci, kde mas
volej_cyklus($list, $out)
{
foreach($list as $row)
{
if (isset($row['id'])) {$out[] = &$row} // pripadne si tam dej jinou
//strukturu nez puvodni $row, treba $out[] = array($row['id'], $row['name'])
// nebo $out[$row['id']] = $row['name']
else {volej_cyklus(&$row);}
}
}
$list = array() ; // nejaka tva array, ja to necham prazdne, nechce se mi tva kopirovat
$out = array()
volej_cyklus($list, $out);
ale, je to v podstate to same, jak jsem poslal tomu druhemu manikovi, jen obalene funkci. A nevim jiste, jestli ty andy & mam spravne, protoze jsem to netestoval :) Ale, proste tak nejak by se z toho dal vycucat bezny tabulkovy seznam. Ten filter je sice super, ale jsou to take cykly a opakovane pouziti uz tak cool nebude :) Kdybys potreboval z te puvodni array jesne neco filtrovat, jako.
Nevim, no, ja takovym kostrukcim, jak napsali boreci kit moc neverim. U toho cyklu vim, co to dela a jsem schopny jej predelat, na co budu chtit :) A taky jsem schopny zjistit, co je spatne.