Page 1 sur 1

impossible d'obtenir des clés de type string au lieu de entier

Posté : 10 janv. 2018, 17:15
par two3d
je n'arrive pas à obtenir des clés de type string avec mon code:

Code : Tout sélectionner

for($i=1;$i<=2;$i++){ $arr[(string)$a]=array("test numéro:"=>$i); }
var_dump:

Code : Tout sélectionner

C:\wamp64\www\test.php:18: array (size=2) 1 => array (size=1) 'test numéro:' => int 1 2 => array (size=1) 'test numéro:' => int 2
j'ai essayé ceci:

Code : Tout sélectionner

$arr[''.$a.'']=array("test numéro:"=>$i);//fonctionne pas $arr["".$a.""]=array("test numéro:"=>$i);//fonctionne pas //ceci aussi: $z=(string)$i; $arr["".$z.""]=array("test numéro:"=>$i);//fonctionne pas
merci par avance pour votre aide

Re: impossible d'obtenir des clés de type string au lieu de entier

Posté : 11 janv. 2018, 09:25
par Spols
J'ai fait quelque test, et en effet pas moyen d'avoir des clé en string quand elle ne contienne que des entiers.

Mais la bonne question est pourquoi veut tu obtenir absolument des clés string ?

Re: impossible d'obtenir des clés de type string au lieu de entier

Posté : 11 janv. 2018, 12:56
par two3d
mon problème est que je souhaite avoir mes clé qui commence depuis 3000 jusqu'à 3099 (string ou integer peut importe), mis à part le fait que je puisse le faire avec un "hack" en disant que mon premier index est 3000 puis liste toutes les autre jusqu'à 3099, je n'ai rien trouvé qui me permette de le faire directement comme mon code:

Code : Tout sélectionner

for($i=3000;$i<=3099;$i++){ $arr[$i]=array("test numéro:"=>$i); }
le hack:

Code : Tout sélectionner

$arr[3000]=array("test numéro:"=>3000); for($i=3001;$i<=3099;$i++){ $arr[$i]=array("test numéro:"=>$i); }
c'est dommage, php fera en sorte de pouvoir le faire prochainement ou peut être qu'on se sait simplement pas comment faire, ce qui est possible mais j'ai lu la doc et rien à ce sujet

Re: impossible d'obtenir des clés de type string au lieu de entier

Posté : 11 janv. 2018, 13:09
par two3d
c'est à rien comprendre, ça fonctionne aujourd'hui, par contre c'est en int mais c'est pas grave, j'arrive à attribuer les valeur que je souhaitez avec mon code:
*petite erreur dans le précédent code

Code : Tout sélectionner

for($i=0;$i<=99;$i++){ $ArrSpec["30".($i<10?"0$i":$i).""]=array("prix"=>"100% gratuit","type"=>"Numéro vert"); }