Vous pouvez accéder à une valeur d'un tableau en utilisant une variable comme clé comme suit: myArray[myKey]
. Peu importe si les clés de tableau sont des entiers (par exemple 32
) ou des chaînes correspondantes ("32"
), ou si myKey
est un entier ou une chaîne. Toutes ces combinaisons devraient travailler (see TwigFiddle):
{% set myArray = {
1: 'first',
'2': 'second',
} %}
{% set keyOneInt = 1 %}
{% set keyOneStr = '1' %}
{% set keyTwoInt = 2 %}
{% set keyTwoStr = '2' %}
{# These all print 'first' #}
{{ myArray.1 }}
{{ myArray[1] }}
{{ myArray['1'] }}
{{ myArray[keyOneInt] }}
{{ myArray[keyOneStr] }}
{# These all print 'second' #}
{{ myArray.2 }}
{{ myArray[2] }}
{{ myArray['2'] }}
{{ myArray[keyTwoInt] }}
{{ myArray[keyTwoStr] }}
Sur la troisième ligne du code ci-dessus, la chaîne clé '2'
est en fait jeté en entier 2
, comme PHP's documentation of arrays état:
Cordes contenant valide les entiers décimaux, à moins que le nombre soit précédé d'un signe +, sera converti en type entier. Par exemple. la clé "8" sera réellement enregistrée sous . D'autre part "08" ne sera pas cast, car ce n'est pas un entier décimal valide.
Si, pour une raison quelconque, vous avez besoin d'un nombre entier, vous pouvez convertir une chaîne en entier en y effectuant des opérations mathématiques (par ex. variable * 1
(= "32" * 1
) ou variable + 0
(= "32" + 0
).
Êtes-vous sûr que ce isnt logique de l'application et doit être fait avant d'entrer brindille? – ToBe