Variable dans un array ? [Résolu]

Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
- - Dernière réponse : cs_joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
- 21 févr. 2013 à 19:08
Bonjour,

j'ai récupérer un code source pour afficher des graphiques style camembert.
source : http://www.phpcs.com//code.aspx?ID=47171
Les principales variables à renseigner étant les légendes et leurs valeurs :

// Titre du camembert
$title = "REPARTITION";

// Largeur du camembert
$width = 350;

// Hauteur du camembert
$height = 200;

// Tableau des légendes
$legend = array('Categ1','Categ2','Categ3','Categ4');

// Tabeau des valeurs
$data = array(8,67,15,10);

// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data


Jusque là ça va.
J'ai donc créé deux variables :

$var = 'Categ1','Categ2','Categ3','Categ4';
$val = 8,67,15,10;

Comment faire pour mettre ces variables dans les Array du code source précédent, j'ai essayé ça :
// Tableau des légendes
$legend = array($var);

// Tabeau des valeurs
$data = array($val);

mais ça ne fonctionne pas, ça ne me créé pas l'image du graphique.

Quelqu'un a-t-il une idée ? svp, merci.
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014
3
Merci
Bonjour,

Je pense que tu t'embêtes beaucoup au final.

1 - Les données se trouvent donc dans l'url. Voir du côté de la variable global [http://php.net/manual/fr/reserved.variables.get.php $_GET[]].
2 - Tu devrais avoir maintenant un tableau associatif ex : array('clef'=>'valeur');
3 - Pour récupèrer simplement les clefs de ce tableau associatif voir la fonction array_keys. Tu peux maintenant peupler ta variable $legend.
4 - Maintenant il reste à récupérer les data. Hop dans la documentation voir array_values. Qui te retourne un tableau avec les $values. Donc tu peux peupler $data.

Cela devrait répondre à ta question.


________________________________________
( $toBe || !$toBe ) = $this->Question();

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 127 internautes nous ont dit merci ce mois-ci

Commenter la réponse de inwebo
Messages postés
381
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
23 octobre 2014
0
Merci
Bonjour,

$var = array('Categ1','Categ2','Categ3','Categ4'); 
$val = array(8,67,15,10);

// Tableau des légendes 
$legend = $var; 

// Tabeau des valeurs 
$data = $val;


$legend et $data doivent être des tableaux or ce n'était pas le cas.
________________________________________
( $toBe || !$toBe ) = $this->Question();
Commenter la réponse de inwebo
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
En fait, je récupère les valeurs depuis une url du genre :
mapage.php?categ1=8&categ2=67&categ3=15&categ4=10

j'ai donc fais ça :
$url = $_SERVER['REQUEST_URI'];
//echo $url."
";

$arr = parse_url($url);
$parameters = $arr["query"];
parse_str($parameters, $data2);
print_r($data2);

ce qui m'affiche :

Array ( [Categ1] => 8 [Categ2] => 67 [Categ3] => 15 [Categ4] => 10 )

Et ça là que je bloque pour renseigner ces valeurs dans le code source original :

// Tableau des légendes
$legend = array();

// Tabeau des valeurs
$data = array();

j'ai donc essayé de recréer les chaines de caractères :

$val = implode($data2, ",");
$var = implode("','",array_keys($data2));
$var2 = substr_replace($var, '\'', 0, 0);
$nb_car = strlen($var2);
$var3 = substr_replace($var2, '\'', $nb_car, 0);

j'obtiens donc :

echo "val : ".$val m'affiche :
val : 8,67,15,10
echo "var : ".$var3 m'affiche :
var : 'Categ1,'Categ2','Categ3','Categ4'


et je pensais faire un Array avec ça, du genre :
$legend = array($var3);
$data = array($val);
Mais ça marche pas !
Ce qu'il faut c'est passer de
$data2 Array ( [Categ1]> 8 [Categ2] => 67 [Categ3] => 15 [Categ4] => 10 )
à
$legend = array('Categ1','Categ2','Categ3','Categ4');
$data = array(8,67,15,10);

et là je bute !
Commenter la réponse de cs_joebuz
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
0
Merci
Tout simplement !!!
Merci de ton aide, voilà le code :

$url = $_SERVER['REQUEST_URI'];
//echo $url."
";

$arr = parse_url($url);
$parameters = $arr["query"];
parse_str($parameters, $data2);
print_r($data2);

$var2 = array_keys($data2);
$val2 = array_values($data2);


// Titre du camembert
$title = "REPARTITION :";

// Largeur du camembert
$width = 350;

// Hauteur du camembert
$height = 200;

// Tableau des légendes
$legend = $var2;

// Tabeau des valeurs
$data = $val2;


// On crée l'image
insertStatImage(1,$width,$height,$title,$legend,$data,'');
Commenter la réponse de cs_joebuz