Attribuer nombre pour données d'un tableau
Coutcout86
Messages postés
219
Statut
Membre
-
xamurai Messages postés 223 Date d'inscription Statut Membre Dernière intervention -
xamurai Messages postés 223 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un petit souci dans ma programmation en PHP. Voila j'ai un tableau de données comme ceci :
$tableau = array ('Pierre','Paul','Jack');
Et j'aimerai pour chaque données (donc pour chaque prénom leur attribuer un numéro mais au hasard. Donc j'ai utilisé la fonction rand de PHP et voila ce que cela donne :
foreach($tableau as $numPlace)
{
$numPlace = rand(1,3);
}
echo $tableau ;
Mais ce ne marche pas d'où peut venir mon erreur ?
Merci de bien me répondre
Romain.
J'ai un petit souci dans ma programmation en PHP. Voila j'ai un tableau de données comme ceci :
$tableau = array ('Pierre','Paul','Jack');
Et j'aimerai pour chaque données (donc pour chaque prénom leur attribuer un numéro mais au hasard. Donc j'ai utilisé la fonction rand de PHP et voila ce que cela donne :
foreach($tableau as $numPlace)
{
$numPlace = rand(1,3);
}
echo $tableau ;
Mais ce ne marche pas d'où peut venir mon erreur ?
Merci de bien me répondre
Romain.
A voir également:
- Attribuer nombre pour données d'un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau des codes ascii - Guide
- Tableau croisé dynamique - Guide
2 réponses
Ta question est un peu mal formuler, mais j'ai l'impression que tu aimerais que les prenoms soient classés au hasard dans le tableau:
<?php
$tableau = array ('Pierre','Paul','Jack');
$length = count($tableau);
$tableaufinal = array();
$position = 0;
while($length > 0)
{
$r = rand(0 , $length);
$tableaufinal[$position] = $tableau[$r];
$tableau[$r] = $tableau[0];
array_shift($tableau);
++ $position;
--$length;
}
$print_r($tableau_final);
?>
A non pas du tout ! Effectivement ma question est mal formulé. Je vais expliqué concretement j'ai une liste d'élèves ( 68 personnes) avec un amphi (68 places) dont les places sont numérotés de 1 à 68 et enfaite j'aimerai placé au hasard les élèves sur une place. Voila ce que je veux faire. Est-ce plus compréhensible?? Désolé de mal formuler ma demande
Merci de bien me répondre
Romain.
Merci de bien me répondre
Romain.
Non parce que mon tableau avec lequel il y a le nom des élèves sera classé par ordre alphabétique car la liste viendra d'un export excel. Et une fois que j'ai cette liste d'élèves il faut que je les place au hasard dans l'amphi donc il faut que j'attribue au hasard un numéro de place. Je veux pas que Monsieur A se retrouve à la place 1 et que Monsieur B à place 2
Si tu gardes tes deux tableaux, celui qui contient tes élèves par ordre alphabétique et celui classe aleatoirement tu peux t'en sortir en prenant l'index de ton élève du premier tableau comme place dans la liste classée et l'index du même élève dans le deuxième tableau pour son attribution de place..
Exemple de résultat:
Tableau 1 (liste classée):
[0]=>Bernardo
[1]=>Jacques
[2]=>John
[3]=>Mamadou
[4]=>Rachid
[5]=>Yang
Tableau 2 (liste aléatoire):
[0]=>Mamadou
[1]=>Rachid
[2]=>Yang
[3]=>Bernardo
[4]=>Jacques
[5]=>John
Ton premier tableau les tri alphabétiquement, ton deuxième tableau te donnes les places grâce à l'index. Ainsi Yang sera à la place 2 et non à la 5.
Tableau 1 (liste classée):
[0]=>Bernardo
[1]=>Jacques
[2]=>John
[3]=>Mamadou
[4]=>Rachid
[5]=>Yang
Tableau 2 (liste aléatoire):
[0]=>Mamadou
[1]=>Rachid
[2]=>Yang
[3]=>Bernardo
[4]=>Jacques
[5]=>John
Ton premier tableau les tri alphabétiquement, ton deuxième tableau te donnes les places grâce à l'index. Ainsi Yang sera à la place 2 et non à la 5.
Puisque c'est la valeur maximale a retourner, et que $length renvoi 3 au début, si le random donne 3.. Ca plante par un index out of range non ?