Page 1 sur 1

variable plusieurs valeurs

Posté : 11 déc. 2013, 14:11
par zika
Bonjour,
je cherche le moyen d'attribuer une valeur à une variable, cette valeur provient d'une chaine
$chaine_a_trier = '(Franck,4)(Thierry,2)(Martin,3)';
function je_trie_ma_valeur($chaine_a_trier){
$mavar_ = '$mavar_';
$limit = substr_count($chaine_a_trier, '(');
for($i=1; $i<=$limit; $i++){
echo '<code>'.$mavar_.$i.'</code><br/>';
}
echo $chaine_a_trier;
}
echo je_trie_ma_valeur($chaine_a_trier);
dans l 'exemple, le résultat serait
$mavar_1 = 'Franck,4';
$mavar_2 = 'Thierry,2';
$mavar_3 = 'Martin,3';
vous avez surement une idée?
merci ;)

Re: variable plusieurs valeurs

Posté : 11 déc. 2013, 23:07
par moogli
salut,

les variables dynamique c'est le mal, et ça devient vite le merdier.

pourquoi ne pas utiliser un tableau ?
tu peux utiliser la fonction explode délimiteur )( (pense à virer le premier et dernier caractère avant afin d'avoir des données propre.

ensuite la fonction sort



@+

Re: variable plusieurs valeurs

Posté : 20 déc. 2013, 10:38
par zika
bonjour,
j'opte pour un champ perso par utilisateur, ce sera plus facile à gérer à la saisie des résultats
<?php
$chp1 = 'Zorro, 3, 123456, Gu';
$chp2 = 'Pierre, 3, 456123, CgU';
$data1 = explode(',',$chp1);
$data2 = explode(',',$chp2);
$multiArray = Array(
    Array("pts" => $data1[1], "act_id" => $data1[2], "name" => $data1[0],"jeu" => $data1[3]),
    Array("pts" => $data2[1], "act_id" => $data2[2], "name" => $data2[0],"jeu" => $data2[3]));
$tmp = Array();
foreach($multiArray as &$ma)
    $tmp[] = &$ma["pts"]; // c est l id qui crée le tri
array_multisort($tmp, $multiArray);
    $misenpage = '<table border="1" width="50%"><tr><td>NOM</td><td>Points</td><td>Jeu</td><td>Act</td></tr>';
foreach($multiArray as &$ma)
    $misenpage .= '<tr><td>'.$ma["name"].'</td><td>'.$ma["pts"].'</td><td>'.$ma["jeu"].'</td><td>'.$ma["act_id"].'</td></tr>';
    $misenpage .= '</table>';
    echo $misenpage;
?>
je vais juste vérifié si un champ perso existe ou pas, si oui il est dans le tri si non, il n'y est pas.
si vous avez des conseils en plus je suis preneur :)