array_unique
Bonjour,
j'ai un problème. Je prend le résultat de 2 requête et je fait un array_merge. Jusque là tout va bien. Et la pour éviter les doublons je fait un array_unique sur mon nouveau tableau. Il efface effectivement les doublons mais le problème est que la plupart des valeurs n'ayant pas de doublons sont complètement effacer du tableau.
KiwiSlice - The fruity taste of kiwi
Tu utilises 'DISTINCT' dans ta requete sql, regarde sur google il explique comment s'en servir !
Ciao,
I am singing in the rain , I am happy again !!
Je sais mais j'ai 2 requêtes sur 2 tables avec chacune un DISTINCT. Il n'y a aucun doublons dans chacun de mes résultats mais les 2 mit ensemble me crée des doublons puisque certaines valeurs sont les même d'une table à l'autre. Normalement array_unique devrait ne m'enlever que les doublons mais il m'enlève également des valeurs qui n'ont aucun doublon.
KiwiSlice - The fruity taste of kiwi
Lefounard, tu m'etonneras toujours
Si il fait deux requetes meme avec un DISTINCT pour ces deux requetes, cela ne va pas empecher le fait d'avoir un doublon si il "merge" ses deux resultats de requetes.
KwiSlice, peux tu nous donner le contenu de tes deux tableaux avant de faire le merge ?
Affiche le contenu de tes tableaux avec un :
print_r ($tablo1);
print_r ($tablo2);
Et donne nous le résultat sur un wall :)
KiwiSlice - The fruity taste of kiwi
KiwiSlice - The fruity taste of kiwi
Ben c'est normal.
Array (
[0] => TERRE A JARDIN ORG. 30L HUMIX
[1] => TERRE A JARDIN ORGANIQUE
[2] => TERRE A JARDINAGE OVATION
[3] => TERRE JARDINAGE PLUS VERT 30L
[4] => TERRE NOIRE 30L OVATION
[5] => TERRE NOIRE 30L PLUS VERT
[6] => TERRE NOIRE OVATION
[7] => TERRE NOIRE PLUS VERT 30L
[8] => TERREAU D\'EMPOTAGE 15L HUMIX
[9] => TERREAU D\'EMPOTAGE 30L HUMIX )
La, tu n'as aucun doublon ? si ?
Par contre, dans ton premier exemple, c'est vrai que "TERRE A JARDINAGE OVATION" a disparu.
Tu es sur d'avoir bien procéder ?
Voici mon
code
Les variables $produits et $budget sont 2 tableaux fait à partir de 2 requêtes dans ma BDD.
La partie "for" du code est la façon que j'ai trouver pour éliminer les vides dans le nouveau tableau car "array_unique" garde les valeurs alors je me retrouve avec exemple :
Array[1] Tata
Array[3] Toto
Alors quand je fait un "for" la dessus j'ai des espaces vides exemple :
Array[1] Tata
Array[2]
Array[3] Toto
Je crois que c'est ce bout de code qui est fautif. Y'a un moyen plus simple de faire car j'ai pas trouvé !?
KiwiSlice - The fruity taste of kiwi
<?php
$tab1 = Array('toto', 3 => 'tata','titi');
$tab2 = Array('toto','tete','titi','hehe');
$newtab = array_merge($tab1,$tab2);
$newtab = array_unique($newtab);
print_r($newtab);
/*
print_r($newtab) donne :
Array
(
[0] => toto
[1] => tata
[2] => titi
[4] => tete
[6] => hehe
)
*/
?>
donc apres faut voir les valaurs de ton tableau. ca vient de la je suppose.
zebdinou pour les intimes / Blog : http://www.zebden.fr