renommer un tableau array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : renommer un tableau array

Re: renommer un tableau array

par liens_geeks » 18 déc. 2011, 14:16

Salut,
Juste par curiosité, pourquoi tu ne crées pas un tableau multidimensionnel?

$tblutil['165'] = array(40, 60, 90, 120, 150, 165);
$tblutil['166'] = array(40, 60, 90, 120, 150, 165);
etc...

Jérôme

Re: renommer un tableau array

par sirakawa » 17 déc. 2011, 22:28

Ce n'est pas certain quand on a la certitude qu'il sera rempli comme tableau. de plus, venant de pascal et de C, j'ai l'habitude de tout déclarer avant de m'en servir, même si ce n'est pas indispensable en PHP.
en effet:
if ($a=1)
{
$tableau = $tableau1;
}
else
{
$tableau = $tableau2;
}
fonctionne toujours si $tableau1 et $tableau2 existent comme tableaux.

Re: renommer un tableau array

par clicaucentre » 17 déc. 2011, 18:00

Merci :-)

La première option a fonctionné !

Si je comprend bien il suffisait de dire que $tblutil est un tableau avant de s'en servir

Re: renommer un tableau array

par sirakawa » 17 déc. 2011, 16:06

Suggestion
$tbl165 = array(40, 60, 90, 120, 150, 165);

/* une option en initialisant $tblutil 
$tblutil = array(); 
if ($largeur > 164) 
{
    $tblutil = $tbl165;
}
else
{
    $tblutil = ....; 
}
*/
/* une option en assignant un taleau vide en-dessous de 164  Il suffit de remplacer array() par le nom de tableau voulu*/
$tblutil = ($largeur > 164) ? $tbl165: array() ;
for ($n = 1; $n <= count($tblutil); $n++)
{ $ligne = each($tblutil);
echo "<div>
<table class=\"largeur\"><tr>
<td width=\"$ligne[value]\">$ligne[value]<input type=\"radio\" name=\"largeur\" value=\"$ligne[value]\"></td>
</tr></table>
</div>";
}

Re: renommer un tableau array

par Calimero » 17 déc. 2011, 15:08

Je n'ai plus de message d'erreur mais aucun affichage de la boucle!!
Oui car du coup la variable est initialisée avec un tableau vide...

A toi de revoir tes conditions (cf code donné au départ), de vérifier qu'elles sont bien éxécutées comme elles le devraient (au besoin en insérant des echo dans chaque if() pour bien visualiser), et tu devrais finir par y arriver.

Re: renommer un tableau array

par clicaucentre » 17 déc. 2011, 14:40

Merci j'ai essayé comme ça:

Code : Tout sélectionner

$tblutil=array(); for ($n = 1; $n <= count($tblutil); $n++) { $ligne = each($tblutil); echo "<div> <table class=\"largeur\"><tr> <td width=\"$ligne[value]\">$ligne[value]<input type=\"radio\" name=\"largeur\" value=\"$ligne[value]\"></td> </tr></table> </div>"; }
Je n'ai plus de message d'erreur mais aucun affichage de la boucle!!

Re: renommer un tableau array

par Calimero » 17 déc. 2011, 14:21

et voici le message d'erreur que j'obtiens:
Warning: Variable passed to each() is not an array or object in C:\wamp\www\granval\misajour\outilsimages\form_largeur.php on line 9

Si je place : $tbl165 dans ma boucle ça marche trés bien,
si vous pouviez me dire ce que ne fais pas comme il faut, Merci d'avance
Bonjour,

Ça semble correct mais tu n'as pas pensé, dans le cadre du déboguage, à vérifier ce qu'il y avait dans la variable $tblutil quand tu reçois ce message d'erreur.

Par exemple dans ce bout de code :
if ($largeur > 164) 
{ $tblutil = $tbl165;
}
Que se passe t-il si la condition n'est pas vérifiée ? $tblutil est indéfini et le code suivant va échouer avec une erreur puisqu'il s'attend à ce qu'un tableau soit contenu dans la variable (via each() ).

Donc, si tu penses à préfixer ton code d'une simple initialisation de la variable qui pose problème (qui couvre donc tous les cas de figure, y compris si les conditions échouent), ça peut aider :
$tblutil=array();

if ($largeur > 164) 
{ $tblutil = $tbl165;
}
Essaye et dis-nous.

renommer un tableau array

par clicaucentre » 17 déc. 2011, 13:42

Bonjour à tous

Voici mon probleme:
j'ai plusieurs tableaux sur le même modèle comme celui-ci:

Code : Tout sélectionner

$tbl165 = array(40, 60, 90, 120, 150, 165);
et j'aurai besoin de changer son nom de variable, en faisant ceci:

Code : Tout sélectionner

if ($largeur > 164) { $tblutil = $tbl165; }
puis j'utilise le tableau de cette manière:

Code : Tout sélectionner

for ($n = 1; $n <= count($tblutil); $n++) { $ligne = each($tblutil); echo "<div> <table class=\"largeur\"><tr> <td width=\"$ligne[value]\">$ligne[value]<input type=\"radio\" name=\"largeur\" value=\"$ligne[value]\"></td> </tr></table> </div>"; }
et voici le message d'erreur que j'obtiens:
Warning: Variable passed to each() is not an array or object in C:\wamp\www\granval\misajour\outilsimages\form_largeur.php on line 9

Si je place : $tbl165 dans ma boucle ça marche trés bien,
si vous pouviez me dire ce que ne fais pas comme il faut, Merci d'avance