Balise TABLE dans implode

dan4
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 9
Inscription: 1 Mar 2006

Balise TABLE dans implode

Message le Dim Juin 13, 2010 3:05

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: Tout sélectionner
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();




anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1275
Inscription: 11 Nov 2007

Re: Balise TABLE dans implode

Message le Dim Juin 13, 2010 11:19

Essai :
Code: Tout sélectionner
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.

dan4
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 9
Inscription: 1 Mar 2006

Re: Balise TABLE dans implode

Message le Dim Juin 13, 2010 15:43

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 écrit:Essai :
Code: Tout sélectionner
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: Tout sélectionner
<?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.

dan4
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 9
Inscription: 1 Mar 2006

[RESOLU] Re: Balise TABLE dans implode

Message le Dim Juin 13, 2010 17:21

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: Tout sélectionner
<?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>';
?>


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1275
Inscription: 11 Nov 2007

Re: Balise TABLE dans implode

Message le Dim Juin 13, 2010 17:25

Code: Tout sélectionner
return $lottery;


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité