2010-06-10 5 views
2

J'ai un peu de mal à référencer les index dans les tableaux de Smarty. Je crois que c'est parce que la variable que j'utilise comme l'index est une chaîne. Comment puis-je convertir cette chaîne en entier dans le modèle?Comment transformer une valeur en nombre entier dans Smarty

Merci.

+1

... Sérieusement? Après tout le travail que Smarty a fait pour tirer la présentation ** out ** de PHP, vous voulez maintenant vider la logique ** dans ** it ?! –

+4

Je cherche une réponse, pas un troll. Merci. – lafoaug

+0

Pouvez-vous montrer quelques exemples de code - c'est un peu difficile de comprendre exactement ce que vous essayez de faire – thetaiko

Répondre

2

Le documentation montre de nombreux exemples d'utilisation, en particulier en ce qui concerne l'accès aux éléments du tableau.

{$foo}  <-- displaying a simple variable (non array/object) 
{$foo[4]}  <-- display the 5th element of a zero-indexed array 
{$foo.bar} <-- display the "bar" key value of an array, similar to PHP $foo['bar'] 
{$foo.$bar} <-- display variable key value of an array, similar to PHP $foo[$bar] 
{$foo[bar]} <-- syntax only valid in a section loop, see {section} 
0

Je crois que c'est parce que la variable J'utilise l'indice est une chaîne

Je ne suis pas d'accord avec cette croyance:

$arr = array('a'); 
$i = '0'; 
echo $arr[$i]; // echos a 

Je pense que la le problème est ailleurs. Si vous avez d'autres questions, vous devriez inclure une partie de votre code.

0

Si elle est déjà affectée à une variable, disons $ var, vous pouvez définir le type d'une variable comme ceci:

{$converted = settype ($var, 'integer')} 

Vous ne devez pas utiliser la valeur convertie $, mais Si vous ne l'attribuez pas, le bool s'affichera dans votre page.

8

Si je comprends bien la question, {$ variable | intval}

+0

yepp, c'est tout. Puisque vous pouvez utiliser n'importe quelle fonction php, vous pouvez aussi utiliser intval. (Bien que je dois avouer que j'ai d'abord pensé à comment utiliser (int) $ s dans smarty) –

+0

@ZsoltSzilagy Mais est-ce mieux que '(int) $ var'? Si oui, pourquoi? –

0

depuis que je ne suis pas autorisé à commenter (DOH), je me contenterai de dire que le code @webbiedave est correct en php, mais dans Smarty il ne marche pas travail. Je viens de passer trop de temps à essayer de comprendre pourquoi je n'accède pas aux données de tableau dans le modèle, et j'ai découvert que j'avais tableau avec des touches entières et le paramètre que j'ai utilisé pour clé dans smarty était chaîne, donc ce n'était pas fonctionne comme prévu. je l'ai résolu comme ça:

<!--{debug says} 
    {$item}=> Array (2)  
     name=> "lalala" 
     id => "123" 
     ... 

    {$arrays} => Array (7) 
     123=> Array (3) 
      other_part_i_care=> "bebebe" 
      ... 
--> 
{$arrays[$item.id].other_part_i_care} <!--this doesnt return anything--> 

{assign var='item_id' value=$item.id} <!--my guess here it gets interpreted as int --> 
{$arrays[$item_id].other_part_i_care} <!--this return expected outcome--> 
Questions connexes