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

Avatar du membre
Eléphant du PHP | 224 Messages

22 avr. 2017, 00:43

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
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen:

Eléphant du PHP | 63 Messages

23 avr. 2017, 05:54

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]); }

Avatar du membre
Eléphant du PHP | 224 Messages

25 avr. 2017, 17:38

Hello :)

C'est parfait, merci beaucoup !!!

A bientôt !
Couin
Un Couin vaut mieux que Deux tu couineras :D
Retrouvez-moi tous les dimanches soir à 22H pour un mix live au vinyle sur eurodance90.fr :mrgreen: