Autor | Zpráva | ||
---|---|---|---|
4ever Profil |
#1 · Zasláno: 14. 10. 2011, 09:12:26
Jak náhodně vypsat členy intervalu 80-100, s ohledem na výkon? Chtěl bych toto číslo použít jako index k přístupu k poli. Napadá mě vygenerovat pole pomocí smyčky for a pak z tohoto pole náhodně vybírat element/index/číslo, použít číslo a pak daný element vymazat. Celou akci opakovat např. 100x. Není to moc složitý?
|
||
okolojdouci Profil * |
#2 · Zasláno: 14. 10. 2011, 09:20:41
Nebo použít šufle?
|
||
netprd Profil |
#3 · Zasláno: 14. 10. 2011, 09:22:19
Co takhle na to pole použít
shuffle(); |
||
4ever Profil |
#4 · Zasláno: 14. 10. 2011, 09:24:30 · Upravil/a: 4ever
okolojdouci, netprd:
To míchání pole se mi právě nezdá vhodné kvůli výkonu. V poli se nachází výsledky z databáze a myslím si, že by ta operace mohla konzumovat mnoho prostředků. To čeho chci dosáhnout ve výsledku sice je promíchání ale ta operace bude provedena např. 100x s polem, které má 100x elementů typu pole a každé vnořené pole obsahuje spoustu dalších dat. Nebo jste to mysleli jinak? Jako vytvořit nejdříve seznam indexů toho vícerozměrného pole, pak ten seznam zamíchat a z něj vytáhnout číslo? Nevím co je náročnější na výkon. Co to znamená, že funkce shuffle zamíchá elementy? Přečísluje indexy nebo manipuluje s elementy, jako že je ukládá do paměti a překopírovává na jiné místo/index? |
||
oop Profil * |
#5 · Zasláno: 14. 10. 2011, 09:49:13
array_rand( $array , $num_req ) |
||
4ever Profil |
#6 · Zasláno: 14. 10. 2011, 10:01:11
oop:
Volbu $num_req jsem přehlédl. Takže tato volba mi umožní načíst všechny elementy náhodně a jedinečně? |
||
netprd Profil |
#7 · Zasláno: 14. 10. 2011, 10:08:11
promíchá to pole takže když ho budeš prochátez za pomoci foreach tak ti to bude brát "jakože" náhodné prvky a není nutné tu operaci(shuffle) přeci provádět 100x ne?
$arr = array( 1 => array("test15",15), 2 => array("test16",16), 3 => array("test17",17), 4 => array("test18",18) ); shuffle($arr); foreach($arr as $item){ print_r($item); } |
||
4ever Profil |
#8 · Zasláno: 14. 10. 2011, 10:14:43
netprd:
To promíchání 100x je z jiného důvodu, než si myslíš. Dělám takový program na test. který obsahuje různé množství otázek. Když bude otázek sto, musí se odpovědi promíchat. Zní to šíleně, sto odpovědí, ale to už záleží na zadavateli. |
||
oop Profil * |
#9 · Zasláno: 14. 10. 2011, 11:37:53
4ever:
Voľba $num_req umožňuje vybrať z poľa viac elementov naraz, tým pádom nedochádza k tomu že by tam bol ten istý viackrát, teda ano jedinečne... |
||
Časová prodleva: 13 let
|
0