Aller au contenu

regrouper des variables


Sujets conseillés

Posté

Bonjour, j'ai une boucle for qui me ressort des résultats comme cela :

303

312

4512

164

16545

303

4512

312

Et j'aimerai pouvoir regrouper les valeur pour n'avoir 303 qui ne s'affiche que une seule fois. Soit un équivalent du GROUP BY mais en php.

Merci

Posté (modifié)

Hello,

La fonction array_unique() peut te faire ça.

Sinon dans ta boucle :

$list = array();
for( [...] ){
$list[ $tonNumero ] = true;
}
$list = array_keys( $list );

PS : dans ton exemple pour le moment c'est plus proche d'un distinct que d'un group by.

Modifié par Kioob
Posté

Merci pour ton aide, mais le soucis est que j'ai deux un boucle for dans une autre.

Voici le code se sera plus simple.

$table = array();
$table[0] = "15";
$table[1] = "12,16,15";
$table[2] = "18";
$table[3] = "14,12,15,16,18";
$table[4] = "14,17";


$sql_taf = "SELECT DISTINCT(champs_1), champs_2 FROM p_fonction WHERE";
for ($i=0; $i < count($table); $i++) {
if (strpos($champs_1[$i], ",") == false) {
if ($i == 0) {
$sql_taf .= " champs_1 = ";
} else {
$sql_taf .= " OR champs_1 = ";
}
$sql_taf .= $champs_1[$i];
} else {
$str = $champs_1[$i];
$attributs = array();
$attributs = explode(',', $str);
for ($n=0; $n < count($attributs); $n++) {
if (($i == 0) AND ($n == 0)) {
$sql_taf .= " champs_1 = ";
} else {
$sql_taf .= " OR champs_1 = ";
}
$sql_taf .= $attributs[$n];
}
}
}
$sql_taf .= " ORDER BY champs_2 ASC";

Comme tu t'en doutes si j'ai un très grand tableau je vais avoir une requete énorme. Et cela me permettrai de la réduire.

Merci

Posté

Bonjour,

en quoi le fait d'avoir deux tableaux est il un problème ? Et peu importe l'utilisation derrière, la technique de dédoublement est la même.

Sur quoi bloques tu ? (non je ne vais pas faire le boulot à ta place)

Posté

c'est bon j'ai réussi. Le truc été que comme j'avais deux boucle ça me sortais en valeur unique des variable mais que dans chaque boucle.

En fait j'ai créer un autre tableau en sorties de ceux la puis y ai applique le array unique.

Merci pour ton coup de main.

++

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...