Chaine dans une array() reconnu comme une seule valeur ?

Eléphanteau du PHP | 33 Messages

13 oct. 2010, 11:23

Bonjour,

Je met en place un script qui me permet d'enlever des doublons avec la fonction
array_unique()
.

Pour cela je part d'un array comme suit :
$values = Array("mathematiques", "anglais", "anglais", "allemand", "mathematiques", "anglais");
Simplement, pour des questions pratique, je remplace la chaine par une variable :
$values = Array("mathematiques", "anglais", "anglais", "allemand", "mathematiques", "anglais");
par :
$values = Array($listematidstring);
Le soucis est que la chaine est reconnu comme une seule valeur et que la suppression de doublons ne peut pas ce faire.

Au lieu d'avoir comme valeur :

val 1 : mathematiques
val 2 : anglais
val etc..

j'ai :

val 1 : "mathematiques", "anglais", "anglais", "allemand", "mathematiques", "anglais"

Quelqu'un aurait un élément de réponse.

Merci
:D

Mammouth du PHP | 1511 Messages

13 oct. 2010, 11:46

C'est normal comme comportement.
Utilises explode() dans ton cas.

ViPHP
xTG
ViPHP | 7331 Messages

13 oct. 2010, 11:47

Tu as créé un array de un élément en fait. :)

Pour créer à un array à partir d'une string tu peux passer par la commande explode().
$string = "Maths, Anglais, Philosophie, Anglais";
$string_traite = str_replace(' ','',$string); // suppression des espaces qui nous gênent
$tab = explode(',',$string_traite); // explode sur le caractère ,
print_r($tab);

Eléphanteau du PHP | 33 Messages

13 oct. 2010, 11:59

Merci, j'avais oublié qu'un variable est considérer comme unique.

J'avais déjà utlilisé explode, mais pas dans ce cas là.

Merci pour vos réponse
:P