2014-06-30 68 views
9

問題很短。樹枝中的氣味

我有一個整數鍵的數組,而參數是字符串。我想通過使用該參數來獲取該數組的元素。

如何進入小枝intval - (int)"32"{{ variable }}其中variable == (string) "32";

+2

你確定這心不是應用程序邏輯和進入前枝應該做? – ToBe

回答

6

有樹枝過濾器。其中之一是這樣的:

http://twig.sensiolabs.org/doc/filters/number_format.html

{{ variable|number_format }} 

,如果你是在一個字符串做數學,它會自動轉換爲一個整數反正,但是!

+3

糾正我,如果我錯了,但在這裏你是反轉OP的問題。 '{{variable | number_format}}'將int轉換爲字符串,是的,解決了這個問題,但是相反... – xDaizu

+4

我不相信這是正確的。我只是測試它,「number_format」過濾器不會將字符串轉換爲int。 – Cninroh

+0

正如@ xDaizu提到的,這是將一個float轉換爲一個字符串。請參閱http://php.net/number_format以及小枝功能只是一個包裝 – lordrhodos

5

您可以使用一個變量來訪問數組的值,如下所示:myArray[myKey]。數組鍵是整數(例如32)還是相應的字符串("32")或myKey是整數還是字符串都無關緊要。所有這些組合應該工作(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] }} 

在上面的代碼中的第三行,該字符串鍵'2'實際上是轉換成integer 2,像PHP's documentation of arrays狀態:包含有效

字符串十進制整數,除非編號爲 前面有一個+符號,將轉換爲整數類型。例如。密鑰 「8」實際上將存儲在之下。另一方面,「08」將不會被 強制轉換,因爲它不是有效的十進制整數。

如果由於某種原因你需要一個整數,你可以通過對它進行數學運算來將一個字符串轉換爲一個整數 - 例如, variable * 1(= "32" * 1)或variable + 0(= "32" + 0)。