creer une variable a partir de pl usieurs

Le
Rom1
Bonjour,

Je souhaiterais créer une variable à partir de plusieurs Je m'explique :

J'ai des variables créées à la volée :
$tab1[1]
$tab2[1]
$tab2[1]
$tab4[1]


je souhaiterais que ces variables deviennent une seule formatée comme ceci :

$supervariable = "$tab1[1],$tab2[1],$tab3[1],$tab4[1]"

pour qu'en suite je puisse écrire un code comme celui-ci :

array ("1",$supervariable)


qui serait la même chose que si j'écrivais :

array ("1",$tab1[1],$tab2[1],$tab3[1],$tab4[1]),

est-ce possible Ai-je au moins été clair Ca ce n'est pas sur,
auquel cas je m'en excuse.

Romain
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #41667

Je souhaiterais créer une variable à partir de plusieurs... Je m'explique :

[ des choses pas très claires ]

est-ce possible... Ai-je au moins été clair... Ca ce n'est pas sur,
auquel cas je m'en excuse.


Comme je ne suis pas sûr d'avoir compris ce que tu souhaites faire,
regarde déjà ces trois pages de la doc qui ont des chances de répondre
à ton besoin. Si ce n'était pas le cas, reviens donner des précisions.

http://fr3.php.net/manual/fr/function.implode.php
http://fr3.php.net/manual/fr/function.explode.php
http://fr3.php.net/manual/fr/language.variables.variable.php

Rom1
Le #41664
Je souhaiterais créer une variable à partir de plusieurs... Je m'explique :

[ des choses pas très claires ]

est-ce possible... Ai-je au moins été clair... Ca ce n'est pas sur,
auquel cas je m'en excuse.


Comme je ne suis pas sûr d'avoir compris ce que tu souhaites faire,
regarde déjà ces trois pages de la doc qui ont des chances de répondre
à ton besoin. Si ce n'était pas le cas, reviens donner des précisions.

http://fr3.php.net/manual/fr/function.implode.php
http://fr3.php.net/manual/fr/function.explode.php
http://fr3.php.net/manual/fr/language.variables.variable.php




Merci beaucoup pour les liens que je suis allé consulté mais en fait je
m'embrouille dans ce que j'ai le droit de faire et de ne pas faire en PHP.

Je dois obtenir ceci :

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1]),
array("2",$tab1[2],$tab2[2],$tab3[2]),
array("3",$tab1[3],$tab2[3],$tab3[3]),
array("4",$tab1[4],$tab2[4],$tab3[4]),
array("5",$tab1[5],$tab2[5],$tab3[5]));

Chaque variable $tabx[y] doit être crée à la volée. Au final je voudrais
optimiser le code un peu comme ceci (je sais que ce que j'écris là est
aberrant, c'est juste pour illustrer) :

$donnees = array(

$i = 0;
While ($y < 5)
{
$y = $y + 1;
array ("$y"
$x = 0;
While ($x < 3)
{
$x = $x + 1;
,${'tab'.$x}[$y]
}
}
);

Mais forcément ça ne peut pas fonctionner… Y a t-il une méthode pour
cela… Je fais du PHP depuis peu de temps et là je suis dans une impasse.
Je ne sais pas comment je dois m’y prendre. Est-ce qu’au moins c’est
possible ?

Merci pour votre aide


Olivier Miakinen
Le #40353

Je dois obtenir ceci :

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1]),
array("2",$tab1[2],$tab2[2],$tab3[2]),
array("3",$tab1[3],$tab2[3],$tab3[3]),
array("4",$tab1[4],$tab2[4],$tab3[4]),
array("5",$tab1[5],$tab2[5],$tab3[5]));


<?php
function subarray($n) {
global $tab1, $tab2, $tab3;
return array("$n", $tab1[$n], $tab2[$n], $tab3[$n]);
}
$a = array(1, 2, 3, 4, 5);
$donnees = array_map("subarray", $a);
?>

Rom1
Le #40351
Je dois obtenir ceci :

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1]),
array("2",$tab1[2],$tab2[2],$tab3[2]),
array("3",$tab1[3],$tab2[3],$tab3[3]),
array("4",$tab1[4],$tab2[4],$tab3[4]),
array("5",$tab1[5],$tab2[5],$tab3[5]));


<?php
function subarray($n) {
global $tab1, $tab2, $tab3;
return array("$n", $tab1[$n], $tab2[$n], $tab3[$n]);
}
$a = array(1, 2, 3, 4, 5);
$donnees = array_map("subarray", $a);
?>



Oui ! Merci pour tout j'approche du but. Je reste toujours coincé sur un
point. C'est qu'ici l'exemple se faisait avec $tab1, $tab2 et $tab3 mais
je dois les crééer à la volé. ils dépendent d'un nombre de rubrique
que je récupère dans une table.

Par exemple si ce nombre de rubrique est égal à 3 alors je dois obtenir

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1]),
array("2",$tab1[2],$tab2[2],$tab3[2]),
array("3",$tab1[3],$tab2[3],$tab3[3]),
array("4",$tab1[4],$tab2[4],$tab3[4]),
array("5",$tab1[5],$tab2[5],$tab3[5]));

mais s'il est égal à 5 alors il faudra que j'obtienne :

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1],$tab4[1],$tab5[1]),
array("2",$tab1[2],$tab2[2],$tab3[2],$tab4[1],$tab5[1]),
array("3",$tab1[3],$tab2[3],$tab3[3],$tab4[1],$tab5[1]),
array("4",$tab1[4],$tab2[4],$tab3[4],$tab4[1],$tab5[1]),
array("5",$tab1[5],$tab2[5],$tab3[5],$tab4[1],$tab5[1]));

Est il possible d'adapter cela en fonction du nombre de rubriques ?

Encore merci pour votre aide.


Olivier Miakinen
Le #39909

Oui ! Merci pour tout j'approche du but. Je reste toujours coincé sur un
point. C'est qu'ici l'exemple se faisait avec $tab1, $tab2 et $tab3 mais
je dois les crééer à la volé. ils dépendent d'un nombre de rubrique
que je récupère dans une table.


Un truc de ce genre a des chances de fonctionner :

<?php
$n1 = ...
$n2 = ...
$donnees = array();
for ($idx1 = 1; $idx1 <= $n1; $idx1++) {
$ligne = array("$idx1");
for ($idx2 = 1; $idx2 <= $n2; $idx2++) {
$ligne[] = ${tab$idx1}[$idx2];
}
$donnees[] = $ligne;
}
?>

Pour l'instruction à l'intérieur de la boucle la plus profonde,
j'utilise ce qui est expliqué ici :
http://www.php.net/manual/fr/language.variables.variable.php

Mais le plus souvent utiliser un tableau est quand même plus pratique
et plus lisible que les variables variables. D'ailleurs je ne suis
absolument pas certain de ma syntaxe.

Bruno Desthuilliers
Le #39908
(snip)
Oui ! Merci pour tout j'approche du but. Je reste toujours coincé sur un
point. C'est qu'ici l'exemple se faisait avec $tab1, $tab2 et $tab3 mais
je dois les crééer à la volé. ils dépendent d'un nombre de rubrique
que je récupère dans une table.

Par exemple si ce nombre de rubrique est égal à 3 alors je dois obtenir

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1]),
array("2",$tab1[2],$tab2[2],$tab3[2]),
array("3",$tab1[3],$tab2[3],$tab3[3]),
array("4",$tab1[4],$tab2[4],$tab3[4]),
array("5",$tab1[5],$tab2[5],$tab3[5]));

mais s'il est égal à 5 alors il faudra que j'obtienne :

$donnees = array(
array("1",$tab1[1],$tab2[1],$tab3[1],$tab4[1],$tab5[1]),
array("2",$tab1[2],$tab2[2],$tab3[2],$tab4[1],$tab5[1]),
array("3",$tab1[3],$tab2[3],$tab3[3],$tab4[1],$tab5[1]),
array("4",$tab1[4],$tab2[4],$tab3[4],$tab4[1],$tab5[1]),
array("5",$tab1[5],$tab2[5],$tab3[5],$tab4[1],$tab5[1]));

Est il possible d'adapter cela en fonction du nombre de rubriques ?


Au lieu d'utiliser $tab1, $tab2, ..., $tabN, utilise un tableau de N
tableaux - appelons le $tabs -, tel que $tabs[1] == $tab1, $tabs[2] ==
$tab2, etc. Ce n'est pas plus dur à générer...

Après quoi:

function dispatch($tabs) {
$n = count($tabs);
$donnees = array();
for($i = 1; $i <= 5; $i++) {
$tmp = array("$i");
for($j = 1; $j <= $n; $j++) {
$tmp[] = $tabs[$j][$i];
}
$donnees[] = $tmp;
}
return $donnees;
}

Publicité
Poster une réponse
Anonyme