Autor | Zpráva | ||
---|---|---|---|
Pepik1 Profil |
Dobrý den,
chtěl bych Vás požádat o Vaší pomoc. Řeším problém z DB vyberu například 160 (id) záznamů. Uživatel si zadá do kolika skupin se tyto (id)záznamy mají rozdělit. A potřebuju vymyslet nějaký algoritmus, který by tato čísla do těch skupin rozdělil. Dole uvedu příklad. id=1;2;3;4;5;6;7;8;9;10 (Výstup z DB) Počet skupin = 3; Skupina1= 9;5;1 Skupina2=3;4;8 Skupina3=2;1;6;10 Děkuji za každou radu a pomoc. |
||
juriad Profil |
#2 · Zasláno: 9. 5. 2018, 09:49:17
Použij shuffle a array_chunk. Pozor na to, když počet záznamů není dělitelný počtem skupin, pak dostaneš o jednu skupinu víc.
|
||
Kajman Profil |
juriad:
Při chunk by dostal pro deset prvků pole 3 3 3 1, nebo 4 4 2. Podle příkladu chce 4 3 3. Tak to udělat asi ručně... $id=[1,2,3,4,5,6,7,8,9,10]; $skupin=3; shuffle($id); $polozek=floor(count($id) / $skupin); $navic=count($id) % $skupin; $hotovo=0; $skupiny=[]; for($i=1;$i<=$skupin;$i++) { $pocet=$polozek+($i<=$navic?1:0); $skupiny[]=array_slice($id,$hotovo,$pocet); $hotovo+=$pocet; } shuffle($skupiny); print_r($skupiny); |
||
Pepik1 Profil |
#4 · Zasláno: 9. 5. 2018, 10:18:22
Kajman:
Paráda děkuji moc, to je přesně to co jsem potřeboval. Díky chlapy |
||
Časová prodleva: 5 let
|
0