Igor Kromin |   Consultant. Coder. Blogger. Tinkerer. Gamer.

I've come across a requirement in some of my Smarty templates to check if a value of a variable appears in an array. The PHP in_array function does this for you and according to the Smarty documentation any PHP function can be used as a variable modifier so this should be very easy to implement.
Variable modifiers can be applied to variables, custom functions or strings. To apply a modifier, specify the value followed by a | (pipe) and the modifier name. A modifier may accept additional parameters that affect its behavior. These parameters follow the modifer name and are separated by a : (colon). Also, all php-functions can be used as modifiers implicitly (more below) and modifiers can be combined. .


So lets say my variable is named $my_fruit and I want to check if the value is in this array: ['apples', 'oranges', 'peaches', 'dragonfruit']. This is what it would look like in Smarty...
 Smarty
{if $my_fruit|in_array:['apples', 'oranges', 'peaches', 'dragonfruit']}
My fruit is in the array
{/if}




The syntax can be a little confusing. The variable is specified first, followed by the pipe character, then the in_array function. A colon is used to specify an input parameter to the in_array function, which happens to be the array of fruit from above.

-i

Hope you found this post useful...

...so please read on! I love writing articles that provide beneficial information, tips and examples to my readers. All information on my blog is provided free of charge and I encourage you to share it as you wish. There is a small favour I ask in return however - engage in comments below, provide feedback, and if you see mistakes let me know.

If you want to show additional support and help me pay for web hosting and domain name registration, donations, no matter how small, are always welcome!

Use of any information contained in this blog post/article is subject to this disclaimer.
comments powered by Disqus
Other posts you may like...