Aller au contenu

les tableaux


Sujets conseillés

Posté

Salut,

voila, j'utilise les tableaux (array) depuis perpette, mais je n'ai jamais eu à utiliser cette méthode :

récuperer les variables $_GET et les mettres dans un tableau , MAIS... comme ceci:

-- http://monsite.com/index.php?var=1&subvar=2&other=3&bb=4 --

et créer un UNIQUE tableau qui donnerai le résultat :

print_r($tab);

--- array(1,2,3,4)

(tout dans un seul tableau, sans clé primaire)

je ne sais donc pas comment faire, si vous pouviez m'aider.

merci d'avance ;)

Posté

Bonjour,

$tab["var"] = $_GET["var"];

$tab["subvar"] = $_GET["subvar"];

$tab["other"] = $_GET["other"];

$tab["bb"] = $_GET["bb"];

etc...

Essaie ca, je crois que cela fonctionne :)

Portekoi

Posté

Salut portekoi;

ce n'est pas réellement ce que je veut faire;

en fait, je cherche à obtenir un tableau unique (array(0,1,2,3,4)) sans clé primaire (array('bb' => 1, 'test' => 2)) , et je ne connais pas d'avance le nombre de variable $GET passée en ligne de commande.

Mais merci pour ta réponse ;)

Posté

Bonjour,

je procèderais ainsi pour ce que tu demandes :

$tab = $_GET;
print_r($tab)

Mais je ne vois pas l'utilité de ceci...il suffit d'utiliser le $_GET directement...

Sinon tu peux procéder ainsi pour ne pas reprendre les clés du tableau :

$tab = array();
foreach($_GET as $value) {
 $tab[] = $value;
}

Posté

Salut, j'ai trouvé ;)

merci pour vos réponses; mais j'avais du mal (encore...) m'expliquer ^_^ ;

voila le bout de code que j'ai fait :

$list=null;
$listname=null;
$nb=count($_GET);
$i=0;
foreach ($_GET as $key => $value) {
$i++;
$listname.=($i==$nb) ? htmlentities(strip_tags($key)) : htmlentities(strip_tags($key))."|";
$list.=($i==$nb) ? settype($value,'integer') : settype($value,'integer')."|";
}
$data=split("\|",$list);
$dataname=split("\|",$listname);

merci pour vos réponses ;)

Posté

Ton code n'a pas grand chose à voir avec ta question de base, mais l'essentiel c'est que tu ais trouvé une solution à ton problème ;)

Mainteant poruquoi ne mets tu pas directement les "valeurs" (j'entends par la les clés ainsi que les valeurs) dans les tableaux à l'intérieure de la boucle ? Cela t'éviterais de "bricoler" avec des "|" pour séparer tes valeurs et d'utiliser split ...

Posté

re ;)

je m'explique

récuperer les variables $_GET et les mettres dans un tableau , MAIS... comme ceci:

-- http://monsite.com/index.php?var=1&subvar=2&other=3&bb=4 --

et créer un UNIQUE tableau qui donnerai le résultat :

print_r($tab);

--- array(1,2,3,4)

(tout dans un seul tableau, sans clé primaire)

en fait, j'utilise jpgraph, pour fonctionner il lui faut des données dans un tableau brut

array(1,2,3,4)
;

et le seul moyen que j'ai trouvé, c'est de lui passé via l'url

et avec mon bout de code, je peut recréer les 2 tableaux nécessaires

$data & $dataname

voila, en me relisant, je trouve que ma question était quand meme censé ^_^

merci à vous tous pour votre aide ;)

Posté (modifié)
voila, en me relisant, je trouve que ma question était quand meme censé ^_^

<{POST_SNAPBACK}>

Alors relis-toi mieux :D car que nulle part tu ne demandes un tableau contenant les nom des variables... enfin...si tu veux une méthode un peu moins "bricollage" voilà :

$data = array();
$dataname = array();
foreach($_GET as $key => $value) {
 $data[] = $value;
 $dataname[] = $key;
}

Modifié par TheRec
Posté

Merci pour ton code TheRec, il est vrai qu'il est beaucoup plus propre que le mien ;)

ps :

Alors relis-toi mieux  car que nulle part tu ne demandes un tableau contenant les nom des variables... enfin...

en effet, je me disais que si j'avais la soluce pour les valeurs, c'était identique pour les noms ;)

Posté

merci ;)

au fait; hors sujet; mais pas un pur hasard, tu ne serais pas comment créer un camembert avec jpgraph ? (je ne parle pas anglais; sniff)

mon code (pris dans un exemple de la doc) :

$data = array();
$dataname = array();
foreach($_GET as $key => $value) {
$data[] = settype($value,'integer');
$dataname[] = htmlentities(strip_tags($key));
}

$graph = new PieGraph(250,250,"auto");
$graph->SetShadow();

$graph->title->Set("Résultats du profiler");
$graph->title->SetFont(FF_FONT1,FS_BOLD);

$p1 = new PiePlot3D($data);
$p1->ExplodeSlice(1);
$p1->SetCenter(0.45);
$p1->SetLegends($dataname);

$graph->Add($p1);
$graph->Stroke();

le hic, c'est que les pourcentages que je lui envoie ne correspondent pas à ceux afficher :(

Posté

Désolé, je ne connais pas bien jpgraph ... mais peut-être devrais tu préciser les données que tu envoies, de cette manière on pourra se représenter ce que tu souhaite afficher... si tu fais une capture d'écran de ce qui s'affiche ça aidera encore plus...

Posté

re;

les données envoyées sont (en %) :

40, 30, et 30 (soit 100%)

donc, le camenbert devrait représenter 3 morceaux, 1 de 40% et 2 de 30%; hors, il m'affiche : 3 morceaux de 33% chacun ! ??

ps: j'utilise la version pour php5

ps(bis): je ne peut pas faire de copie d'écran, je sais pas ou la stocké !

Posté (modifié)

Apèrs un peu de lecture, il se trouve jpgraph par défaut adapte tes valeurs pour qu'elle fassent 100% dans tous les cas (avec l'algorithme Hare-Niemeyer) ...

Tu peux éviter cela et utiliser des valeurs absolues...mais pour ne pas qu'il y ait de problèmes visuel il faudrait t'assurer que la somme de tes valeurs fassent 100% ...

Pour utiliser des valeurs absolue, ajoute cette ligne lorsque tu règles tous les paramètres de ton graphique :

$p1->SetLabelType(PIE_VALUE_ABS);

PIE_VALUE_ABS est une constante définie dans le fichier "JPGRAPH_PIE.PHP", tu peux trouver d'autres possibilité dans ce même fichier (tout en haut de celui-ci).

Modifié par TheRec
Posté

Merci Therec d'avoir pris de ton temps pour moi; tu as raison, ca marche nikel maintenant; j'ai aussi pris la sage décision d'apprendre un peu l'anglais;

merci encore pour ton aide ;)

Posté (modifié)

De rien...

je viens de faire un tour sur l'excellent blogmarks de Monique et j'ai vu ceci : Artichow

Cela pourait bient t'intéresser, vu que c'est en français... mais je ne veux pas te décourager dans ton apprentissage de l'anglais (qui est quand même un gros atout sur le Web... oh oui c'est bon j'arrête la démagogie :whistling: ).

Modifié par TheRec

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...