Page 1 sur 1

Opération sur série de variable par une boucle for (par exemple)

Posté : 22 avr. 2017, 00:43
par Couin
Hello :)

J'ai 54 variables dans laquelle je stocke une valeur numérique (longueur de caractère d'un champs issue d'un fichier csv que j'éclate). C'est pour avoir la longueur maximale pour chacune des 54 input text qui suivront après.

Dans le 1er white de lecture du csv, le schéma est du genre :

Code : Tout sélectionner

if (strlen($objArr[0] > $size0) { $size0= strlen($objArr[0]); } et ce jusque if (strlen($objArr[54] > $size0) { $size0= strlen($objArr[54]); }
Je voudrais ajouter une valeur fixe à chaque des variables, Je me suis dis que ce serait propre de faire une boucle plutot que 54 lignes :

Code : Tout sélectionner

for ($s = 0 ; $s <= 54 ; $s++ ) { $size.$s = $size.$s + 2; }
Ce qui n'a marche pas alors j'ai tenté :

Code : Tout sélectionner

for ($s = 0 ; $s <= 54 ; $s++ ) { $size[$s] = $size[$s] + 2; }
Ca ne marche pas non plus :(

Si quelqu'un a une astuce, je suis preneur :)

Merki et bon Louis 15 lol
Couin

Re: Opération sur série de variable par une boucle for (par exemple)

Posté : 23 avr. 2017, 05:54
par tesmet
Bonjour

Le premier bout de code semble vouloir reproduire la fonction max()

Code : Tout sélectionner

$size0 = max(array_map('strlen', $objArr));
Sinon, une variable dynamique s'appelle avec ${} sur la concaténation

Code : Tout sélectionner

for ($s = 0 ; $s <= 54 ; $s++ ) { ${'size'.$s} = ${'size'.$s} + 2; }
mais ce qui change dans le premier bout de code est $objArr[] et non $size0. Donc peut-être que la boucle recherchée est

Code : Tout sélectionner

$size0 = 0; for ($s = 0 ; $s <= 54 ; $s++) { if(strlen($objArr[$s]) > $size0) $size0 = strlen($objArr[$s]); }

Re: Opération sur série de variable par une boucle for (par exemple)

Posté : 25 avr. 2017, 17:38
par Couin
Hello :)

C'est parfait, merci beaucoup !!!

A bientôt !
Couin