| 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: 8 let
|
|||
0