Balise TABLE dans implode

  • Auteur de la discussion Auteur de la discussion dan4
  • Date de début Date de début
Nouveau WRInaute
Bonjour, j'aimerais dans implode() au lieu d'un <br /> placer une <TABLE>, j'arrive pas à le faire.
les données sont l'une après l'autre mais je veux plutôt avoir dans une table comme ceci :

Pour illustrer ce que je veux :
<table><tr>
<td>le résultat</td><td>le résultat</td><td>le résultat</td>
</tr></table>

à la place
de <br />

C'est possible mais je ne sais pas comment le faire.

De l'aide serait appréciée, merci.

Code:
function lottery($maxn = "49",$maxb="6") { 

while (1>0) { 
$lottery[] = mt_rand(1,$maxn); 
$lottery = array_unique($lottery); 
if (sizeof($lottery) == $maxb) break; 
} 
sort($lottery); 

$result = implode("<br />",$lottery); 

return $result;

} 

$lotterynums = lottery();
 
WRInaute passionné
Essai :
Code:
function lottery($maxn = "49",$maxb="6") { 
while (1>0) { 
$lottery[] = "<td>".mt_rand(1,$maxn)."</td>"; 
$lottery = array_unique($lottery); 
if (sizeof($lottery) == $maxb) break; 
} 
sort($lottery); 
return $result;
} 
$lotterynums = lottery();
Théoriquement, il ne reste plus qu'intégrer les table et tr.
 
Nouveau WRInaute
Bonjour, merci pour votre réponse rapide.

je dois placer avant return cette ligne
$result = implode($lottery);
sinon $result n'est pas défini.

mais sort($lottery) n'a plus d'effet donc plus d'ordre dans le résultat.

J'ai changé le code qui est plus bas et qui marche bien.. voir plus bas.

anemone-clown a dit:
Essai :
Code:
function lottery($maxn = "49",$maxb="6") { 
while (1>0) { 
$lottery[] = "<td>".mt_rand(1,$maxn)."</td>"; 
$lottery = array_unique($lottery); 
if (sizeof($lottery) == $maxb) break; 
} 
sort($lottery); 
return $result;
} 
$lotterynums = lottery();
Théoriquement, il ne reste plus qu'intégrer les table et tr.

J'ai trouvé une autre solution plus simple encore :
Code:
<?php
$numbers=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49);
$rand_keys = array_rand($numbers,6);
sort($rand_keys);
echo '<table><tr>';
foreach ($rand_keys as $k=>$v) {
srand((double)microtime()*1000000);
echo '<td>'.$numbers[$v].'</td>';
} 
echo '</td></tr></table>';
?>
Si je pouvais remplacer la première ligne par une boucle pour éviter de faire une longue liste serait mieux :

J'ai pensé à ceci :

for($i=1;$i < 50;$i++) {
}

Je ne sais pas si cela peut s'appliquer et comment faire.
 
Nouveau WRInaute
[RESOLU] Re: Balise TABLE dans implode

J'ai fini par trouver la réponse à ce que je voulais.
Pour éviter les Array très long en chiffres qui se suivent, c'est "range(1,$max);" qu'on doit utiliser.
Dans mon cas, c'est de 1 à 49. Ça aurait pu être 10 000.
Et pour le formatage, dans mon cas, mis dans une balise <TABLE> afin de faire une meilleure présentation.

Salutations !

Code:
<?php
$numbers = range(1, 49);
$rand_keys = array_rand($numbers,6);
sort($rand_keys);
echo '<table><tr>';
foreach ($rand_keys as $k=>$v) {
srand((double)microtime()*1000000);
echo '<td>'.$numbers[$v].'</td>';
} 
echo '</td></tr></table>';
?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut