Eviter les doublons dans un array

Résolu
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -  
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Regarde ici:
http://php.net/manual/fr/function.array-unique.php
2
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
Merci
0
kwaio Messages postés 3423 Date d'inscription   Statut Contributeur Dernière intervention   681
 
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 ?
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
Ca dépend, c'est quoi set en java ? lol
0
debutantXXL
 
si ta liste vient d'une base, pourquoi pas un select distinct?
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
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 !).
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
Merci...
0
Eastchild Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   31
 
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];
        }
}



0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
CA ne va pas trop... Ma boucle est un foreach pour récupérer des infos d'un fichier XML
0
Eastchild Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   31
 
pourquoi ne pas avoir mis le code avec le foreach ?
0
Fetide68 Messages postés 745 Date d'inscription   Statut Membre Dernière intervention   32
 
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...
0