Eviter les doublons
ladj59
Messages postés
322
Statut
Membre
-
Jiji la malice -
Jiji la malice -
Bonjour,
j'ai un tableau et ensuite j'affiche mais le probléme c'est que je ne veux pas mettre les doublons du tableau
comment faire svp?
<?php
foreach($tab as $data)
{
echo '<option value="'.$data.'">'.$data.'</option>';
}
?>
le tableau est préalablement trié
natcasesort($tab);
j'ai un tableau et ensuite j'affiche mais le probléme c'est que je ne veux pas mettre les doublons du tableau
comment faire svp?
<?php
foreach($tab as $data)
{
echo '<option value="'.$data.'">'.$data.'</option>';
}
?>
le tableau est préalablement trié
natcasesort($tab);
A voir également:
- Eviter les doublons
- Doublons photos - Guide
- Éviter pub youtube - Accueil - Streaming
- Marques smartphone à éviter - Accueil - Guide téléphones
- Supprimer les doublons excel - Guide
- Liste des sites internet à éviter - Guide
10 réponses
Hé hé Croy!
Tant de bonté et de mobilisation d'intelligence en une seule personne, ça force le respect.
Tant de bonté et de mobilisation d'intelligence en une seule personne, ça force le respect.
Réfléchis un petit peu et tu trouveras comment tu peux intégrer dans ta boucle foreach :
1.au début un test pour savoir si l'entrée en cours du tableau est identique à la précédente
2.à la fin la sauvegarde dans une variable de la valeur en cours du tableau
Une autre piste si le tableau vient d'une base mysql : DISTINCT ou GROUP BY
1.au début un test pour savoir si l'entrée en cours du tableau est identique à la précédente
2.à la fin la sauvegarde dans une variable de la valeur en cours du tableau
Une autre piste si le tableau vient d'une base mysql : DISTINCT ou GROUP BY
ben pourtat avec le code complet ci dessous il me semble avoir mis tous les order by et distinct nécessaire donc je ne vois pas quoi changer
<?php
$sql=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet") or die(mysql_error());
$sql2=mysql_query("SELECT DISTINCT sujet2 FROM sujets ORDER BY sujet2") or die(mysql_error());
$n=0;
$tab = array();
while ($sujet = mysql_fetch_array($sql)) //propose tous les sujets présents dans la table
{
$data = $sujet['sujet'];
$tab[$n] = $data;
$n++;
}
while ($sujet2 = mysql_fetch_array($sql2)) //propose tous les sujets présents dans la table
{
$data = $sujet2['sujet2'];
$tab[$n] = $data;
$n++;
}
natcasesort($tab);
?>
<form id="formulaire" method="post" action="import2.php">
<select name="sujet" id="sujet">
<?php
$array = array();
foreach($tab as $data)
{
if (!in_array($data, $array)) {
array_push($data, $array);
echo '<option value="'.$data.'">'.$data.'</option>';
}
}
?>
</select>
<input value="envoyer" type="submit"/>
</form>
<?php
$sql=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet") or die(mysql_error());
$sql2=mysql_query("SELECT DISTINCT sujet2 FROM sujets ORDER BY sujet2") or die(mysql_error());
$n=0;
$tab = array();
while ($sujet = mysql_fetch_array($sql)) //propose tous les sujets présents dans la table
{
$data = $sujet['sujet'];
$tab[$n] = $data;
$n++;
}
while ($sujet2 = mysql_fetch_array($sql2)) //propose tous les sujets présents dans la table
{
$data = $sujet2['sujet2'];
$tab[$n] = $data;
$n++;
}
natcasesort($tab);
?>
<form id="formulaire" method="post" action="import2.php">
<select name="sujet" id="sujet">
<?php
$array = array();
foreach($tab as $data)
{
if (!in_array($data, $array)) {
array_push($data, $array);
echo '<option value="'.$data.'">'.$data.'</option>';
}
}
?>
</select>
<input value="envoyer" type="submit"/>
</form>
Tu persistes dans l'erreur en ne formattant pas correctement pas tes scripts pour bien montrer leur structure logique.
Pas d'effort ==> pas d'aide.
Pas d'effort ==> pas d'aide.
j'ai essayé ca mais toujours pas
j'ai du mal...
<?php
$array = array();
foreach($tab as $data) {
if (!in_array($data, $array)) {
array_push($data, $array);
}
}
foreach($array as $data) {
echo '<option value="'.$data.'">'.$data.'</option>';
}
?>
j'ai du mal...
<?php
$array = array();
foreach($tab as $data) {
if (!in_array($data, $array)) {
array_push($data, $array);
}
}
foreach($array as $data) {
echo '<option value="'.$data.'">'.$data.'</option>';
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est ma semaine de bonté ! Malgré un script toujours mal formatté, voici un exemple de boucle (bien formattée) qui devrait résoudre ton pb :
<?php
$array = array( "a", "a", "b", "c", "c", "d" );
foreach( $array as $data )
{
if( $data != $dataPrecedente )
echo '<br>...' . $data . '...';
$dataPrecedente = $data;
}
?>
j'ai essayé de l'adapter à mon cas mais rien
sachant que $tab est un array qui contient mes données
foreach( $tab as $data )
{
if( $data != $data++ )
echo '<br>...' . $data . '...';
$data = $data++;
}
sachant que $tab est un array qui contient mes données
foreach( $tab as $data )
{
if( $data != $data++ )
echo '<br>...' . $data . '...';
$data = $data++;
}
Dans le cadre de ma semaine de bonté toujours :
Quelles sont les différences avec ta tentative d'adaptation ? Dans celle-ci pourquoi $data++ ?
foreach( $array as $data )
{
if( $data != $dataPrecedente )
echo '<option value="' . $data . '">' . $data . '</option>';
$dataPrecedente = $data;
}
Quelles sont les différences avec ta tentative d'adaptation ? Dans celle-ci pourquoi $data++ ?
'tain sa marche tjs pas :
mon array_puch ne renvoit rien.
voiçi mon code ben formatter ! ;-)
$concours=array();
$concours = array_unique ($concours);
while($row=mysql_fetch_array($jeu))
{
$aut = $row['auteur'];
$total = $row['count( auteur )']*2;
array_push($concours,$aut,$total);
}
while($row=mysql_fetch_array($forum))
{
$aut = $row['auteur'];
$total = $row['count( auteur )']*1;
array_push($concours,$aut,$total);
}
mon array_puch ne renvoit rien.
voiçi mon code ben formatter ! ;-)
$concours=array();
$concours = array_unique ($concours);
while($row=mysql_fetch_array($jeu))
{
$aut = $row['auteur'];
$total = $row['count( auteur )']*2;
array_push($concours,$aut,$total);
}
while($row=mysql_fetch_array($forum))
{
$aut = $row['auteur'];
$total = $row['count( auteur )']*1;
array_push($concours,$aut,$total);
}