orchideedorient
Messages postés2Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention21 mai 2008
-
21 mai 2008 à 11:32
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009
-
15 sept. 2009 à 10:00
Bonjour,
J'ai un problème que je ne comprends pas avec un array_unique. En lisant, le manuel PHP, il est bien stipuler : "array_unique() trie les valeurs traitées comme des chaînes dans un premier temps, puis garde la première clé rencontrée pour chaque valeur et ignore les clés suivantes"
J'ai cette ligne de code : $result = array_unique($tab);
Mon $tab contient 80 entrées. Les clés vont de 0 a 79. Les valeurs pour chacune de ces clés sont identiques.
Mon $result est correct : il n'y a qu'une seule donnée. Sauf qu'au lieu que ce soit [0] => toto lorsque je print mon $result, il apparait [55] => toto.
J'aimerais comprendre pourquoi l'array_unique n'a pas pris en compte la première clé rencontrée, mais une au milieu du tableau. Pourriez vous m'éclairer?
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 21 mai 2008 à 14:44
Salut,
Tu aurais du lire aussi la phrase suivante : "Cela ne signifie pas que la clé de la première valeur
rencontrée du tableau <tt class="parameter">array</tt> non trié sera
conservée."
Comme tu l'as lu, "array_unique() trie les valeurs traitées comme des chaînes dans un premier temps".
Le résultat dépendra donc de la manière dont PHP gère les registres mémoire. Du coup, dans ton cas, le premier élément rencontré est celui dont l'index est 55.
<hr size="2" width="100%" />Neige
N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...