Eviter les doublons dans un array

Résolu
Bonjour,

J'essaie d'incrémenter un array en php en évitant les doublons...

Soit une liste, admettons (pour simplifier), un premier array:
	$marque[0]=Peugeot;
	$marque[1]=Peugeot;
	$marque[2]=Renault;


Je souhaite que dans mon array Peugeot n'apparaisse qu'une fois...

incrémentation de l'array:
	$marques=array();
	for ($i=0;$i<count($marque);$i++) {
		if (!in_array($marque)) $marques[]=$marque[$i];
	}


J'ai fait comme ça, mais ça ne fonctionne pas...

Merci.

3 réponses

  1. Modérateur
    Regarde ici:
    http://php.net/manual/fr/function.array-unique.php
    1. Merci
  2. Contributeur
    Je ne sais pas si c'est possible en PHP, mais en java, j'aurai transformé mon tableau en Set, puis l'inverse. Sachant que Set ne supporte pas de doublons, ils auraient été supprimés.
    C'est peut être transposable ?
    1. Ca dépend, c'est quoi set en java ? lol
    2. si ta liste vient d'une base, pourquoi pas un select distinct?
    3. C'est pas vraiment une base... C'est un fichier XML avec lequel je travaille avec du SimpleXML (si vous trouvez un cours XQuery en français et bien détaillé, je prends !).
    4. Merci...
  3. Bonjour,

    rajoute un contrôle à ta requête :

    $marques=array();
    
    $marques[]=$marque[0];
    
    for ($i=1;$i<count($marque);$i++) {
    	if (!in_array($marque) && $marque[($i-1)]!= $marque[$i]) {
                     $marques[]=$marque[$i];
            }
    }


    1. CA ne va pas trop... Ma boucle est un foreach pour récupérer des infos d'un fichier XML
    2. pourquoi ne pas avoir mis le code avec le foreach ?
    3. Désolé, je voulais simplifier... Quand je ne le fait pas, généralement, on ne me répond pas...

      Mais j'ai trouver une alternative avec array_unique() en php...