Supprimer une ligne d'un tableau à entrées identiques

Eléphanteau du PHP | 16 Messages

21 juin 2010, 23:14

Bonsoir,

Voilà, j'ai ce tableau :
$tableau = array(3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,2,2,4,4);

Je boucle sur un array_rand pour extraire une valeur au hasard.
$result = array_rand($tableau);

A chaque fois, dans l'idéal, la ligne trouvée doit être supprimée.
unset($tableau[$result]);

Mais quand je fais cet unset, ca supprime toutes les lignes ayant la même valeur. Si par exemple, array_rand sort un 4, unset supprime alors les deux 4. Pas bien ... je ne voudrai en supprimer qu'un seul.

Amis développeurs, pourriez-vous m'aider ?

Je pense qu'il faille faire un tableau en array(1=>3, 2=>3 ...). Est-ce la solution ? Comment supprimer la ligne trouvée ensuite ?

Merci de votre aide :D

Eléphanteau du PHP | 16 Messages

21 juin 2010, 23:47

J'ai contourné le problème en faisant un schuffle tu tableau puis en supprimant la première ligne sur une boucle.
==> RESOLU

Mammouth du PHP | 661 Messages

22 juin 2010, 01:28

juste par hasard tu as testé un truc dans ce style :
$result = array_rand($tableau);
unset(current($tableau));

Eléphanteau du PHP | 16 Messages

24 juin 2010, 09:14

Pas du tout ;)
Mais comme j'ai fait mon schuffle et que ça tourne très bien, je ne vais pas modifier mon code là. Par contre, je garde ton idée pour une prochaine fois !!!