Creazione gruppi di lavoro

  • Creatore Discussione Creatore Discussione botolo
  • Data di inizio Data di inizio

botolo

Nuovo Utente
30 Nov 2013
3
0
0
Buongiorno a tutti,
devo realizzare uno script possibilmente in php che, dati n iscritti a un corso, crea 4 gruppi di lavoro scegliendo "a caso" dagli n iscritti.
L'ottimizzazione sarebbe avere la possibilità che ogni iscritto dia una preferenza sul "compagno di corso", in modo da metterli nello stesso gruppo di lavoro.

Sapete se in giro c'è già qualcosa pronto? In alternativa mi dareste qualche "dritta"?

grazie!!!
 
Ti scrivo al volo un codice di esempio per la divisione casuale degli iscritti nei gruppi:

PHP:
<?php

#> Definisco un array bidimensionale con un elemento per ogni gruppo presente (al momento: 4)
$gruppi = array(array(), array(), array(), array());

#> La lista degli iscritti totali
$iscritti = array('tizio', 'caio', 'sempronio', 'Clark Kent', 'Bruce Wayne', 'Peter Parker', 'Hollis T. Mason');


#> Mischio l'ordine della lista in modo casuale
shuffle($iscritti);


#> Infilo ogni iscritto in un gruppo dopo l'altro in ordine sparso
$num_gruppi = count($gruppi);

foreach ($iscritti as $i => $nominativo) {
	$gruppi[$i%$num_gruppi][] = $nominativo;
}


#> Faccio un print veloce per vedere la divisione dei nominativi nei gruppi
echo '<pre>';
print_r($gruppi);


Non l'ho testato, ma come concetto dovrebbe andare.
Considera che il numero dei gruppi e la lista degli iscritti puoi riempirla come credi nel contesto della tua applicazione ( probabilmente con un paio di query al database ).

Quanto alla questione "preferenze", io ti suggerirei di rispettarla solo se entrambi i compagni di corso si indicano vicendevolmente come preferenza (magari uno dei due non è d'accordo) e ti suggerirei di agire creando una nuova lista dove hai i nominativi con le loro preferenze che poi usi per spostare ulteriorimente gli iscritti fra le liste di gruppi già create.
 
Ultima modifica:
Molto bravo flameseeker! , avevo preparato anchio un codice al volo ma niente a che vedere con il tuo.
Cambierei solo una cosa : la dichiarazione dell'array, di conseguenza il numero di gruppi
PHP:
$gruppi = array();
$num_gruppi = 4;
 
Ti scrivo al volo un codice di esempio per la divisione casuale degli iscritti nei gruppi:

PHP:
<?php

#> Definisco un array bidimensionale con un elemento per ogni gruppo presente (al momento: 4)
$gruppi = array(array(), array(), array(), array());

#> La lista degli iscritti totali
$iscritti = array('tizio', 'caio', 'sempronio', 'Clark Kent', 'Bruce Wayne', 'Peter Parker', 'Hollis T. Mason');


#> Mischio l'ordine della lista in modo casuale
shuffle($iscritti);


#> Infilo ogni iscritto in un gruppo dopo l'altro in ordine sparso
$num_gruppi = count($gruppi);

foreach ($iscritti as $i => $nominativo) {
	$gruppi[$i%$num_gruppi][] = $nominativo;
}


#> Faccio un print veloce per vedere la divisione dei nominativi nei gruppi
echo '<pre>';
print_r($gruppi);


Non l'ho testato, ma come concetto dovrebbe andare.
Considera che il numero dei gruppi e la lista degli iscritti puoi riempirla come credi nel contesto della tua applicazione ( probabilmente con un paio di query al database ).

Quanto alla questione "preferenze", io ti suggerirei di rispettarla solo se entrambi i compagni di corso si indicano vicendevolmente come preferenza (magari uno dei due non è d'accordo) e ti suggerirei di agire creando una nuova lista dove hai i nominativi con le loro preferenze che poi usi per spostare ulteriorimente gli iscritti fra le liste di gruppi già create.

GRAZIE MILLE!
Mi aspettavo solo dei link con suggerimenti e invece... super!
Adesso mi metto al lavoro e integro le varie query e l'integrazione con db.
Per la questione preferenze provo a metter giù due righe e se riesco nel mio intento le posterò!


Grazie ancora!!
 

Discussioni simili