Page 1 sur 1

Array Unique?????

Posté : 28 mars 2013, 12:13
par Merevihn
Bonjour tout le monde, voilà je cherche à gérer les doublons de ma première colonne dans mon fichier CSV au moyen d'un array unique seulement ça ne marche pas je n'arrive pas à voir mon erreur :

Code : Tout sélectionner

<?php if (($handle = fopen("test.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $a = array($data[0]); var_dump($a); $b = array_unique ($a); var_dump($b); } fclose($handle); } ?>
il me tourne ceci :

array (size=1)
0 => string 'Sacs en Papier' (length=14)
array (size=1)
0 => string 'Sacs en Papier' (length=14)
array (size=1)
0 => string 'Sacs en Papier' (length=14)
array (size=1)
0 => string 'Sacs en Papier' (length=14)
array (size=1)
0 => string 'Sacs en Plastique' (length=17)
array (size=1)
0 => string 'Sacs en Plastique' (length=17)
array (size=1)
0 => string 'Sacs en Plastique' (length=17)
array (size=1)
0 => string 'Sacs en Plastique' (length=17)
array (size=1)
0 => string 'Sacs PP Tissés' (length=14)
array (size=1)
0 => string 'Sacs PP Tissés' (length=14)
array (size=1)
0 => string 'Sacs PP Tissés' (length=14)
array (size=1)
0 => string 'Sacs PP Tissés' (length=14)

alors que je souhaite quelque chose comme :

array (size=1)
0 => string 'Sacs en Papier' (length=14)
array (size=1)
0 => string 'Sacs en Plastique' (length=17)
array (size=1)
0 => string 'Sacs PP Tissés' (length=14)

Re: Array Unique?????

Posté : 28 mars 2013, 14:07
par moogli
Salut,


Il faudrait le faire sur un tableau regroupant les resultars et pas autant de fois que as de ligne.
Ensuite la doc indique bien
Note: Notez que array_unique() ne fonctionne pas avec des tableaux multi-dimensionnels.
Vu que tu boucle déjà sur le fichier autant faire le tri dedans.
Il va te falloir parcourir le tableau résultat pour savoir si c'est déjà présent.


A partir du code que je t'ai fournis dans ce message, si le but c'est de ne pas insérer des doublons dans la table il faut ajouter une requête qui compte le nombre de ligne avec le même nom si c'est zéro insertion sinon on passe à l'intégration suivante.

@+

Re: Array Unique?????

Posté : 28 mars 2013, 14:41
par sirakawa
Ce ne serait pas ça par hasard:
<?php
$a = array();
if (($handle = fopen("test.csv", "r")) !== FALSE)
{
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
     {
        $a[] = array($data[0]);
      }
    fclose($handle);
$b = array_unique ($a);
}
?>

Re: Array Unique?????

Posté : 28 mars 2013, 20:52
par moogli
doc array_unique :
Note: Notez que array_unique() ne fonctionne pas avec des tableaux multi-dimensionnels.
et c'est le cas la :mrgreen:


@+