PHP: Mélanger un tableau de tableau de manière aléatoire
7 messages
• Page 1 sur 1
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
PHP: Mélanger un tableau de tableau de manière aléatoire
Bonjour,
Comment mélanger un tableau de tableau de manière aléatoire ??
Array (
[0] => Array ( [id] => 10 [identifiant] => A20)
[1] => Array ( [id] => 11 [identifiant] => A21)
[2] => Array ( [id] => 12 [identifiant] => A22)
)
Comment mélanger un tableau de tableau de manière aléatoire ??
Array (
[0] => Array ( [id] => 10 [identifiant] => A20)
[1] => Array ( [id] => 11 [identifiant] => A21)
[2] => Array ( [id] => 12 [identifiant] => A22)
)
-

UsagiYojimbo - WRInaute accro

- Messages: 8576
- Inscription: 23 Nov 2005
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
oui, j'ai essayé avec shuffle mais je n'arrive pas a mélanger les clés, heureusement que je peux trier autrement donc je m'en sors avec un array_multisort($tab, SORT_DESC) mais c'est pas ce qu'il y a de plus pertinent. J'ai bien une idée en tete, mais ca me fait faire une lecture sur les clés avec array_keys() et j'ai pas trop envie de modifier le reste du code qui suis. Une fonction qui fasse tout en un serait l'idéal
-

neuneu - WRInaute discret

- Messages: 52
- Inscription: 30 Juil 2004
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
- Code: Tout sélectionner
function melange(&$array) {
$val = array();
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) {
$val[$key] = $array[$key];
unset($array[$key]); }
$array = $val;}
Ca devrait faire l'affaire.
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
thx, voyons voir..ca devrait fonctionnerr... mais il ne se passe rien...ok j'ai trouvé le probléme, il ne faut pas essayer de réindicé $val et pour éviter le $global un return s'impose....et c'est bouclé
- Code: Tout sélectionner
function melange($array) {
$val = array();
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) $val[] = $array[$key];
return $val;
}
-

bidulemachin - WRInaute discret

- Messages: 102
- Inscription: 5 Oct 2007
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
A noter que la fonction shuffle() mélange les clés ! Pour éviter de changer les clés, personnellement j'utilise ça :
//$shuff étant ton array
uasort( $shuff, 'scmp' );
function scmp( $a, $b ) {
return rand(-1,1);
}
//$shuff étant ton array
uasort( $shuff, 'scmp' );
function scmp( $a, $b ) {
return rand(-1,1);
}
-

KOogar - WRInaute accro

- Messages: 3974
- Inscription: 16 Nov 2004
Re: PHP: Mélanger un tableau de tableau de manière aléatoire
de mon coté je travaille uniquement les datas en sortie, donc pour moi ca n'a aucune importance le mélange des clés. Je peux en 3 secondde me faire une copie de la table si besoin
j'aime bien ton algo mais je comprend pas tout, tu pourrais l'expliquer stp?
j'aime bien ton algo mais je comprend pas tout, tu pourrais l'expliquer stp?
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
