当键以句点开头时,如何在 smarty 中访问数组值


How to access array value in smarty when key starts with a period?

我正在使用使用Smarty的CMS,我对Smarty不太熟悉。我可以像这样访问数组值:{{$data.video.title}}

我需要访问视频信息,但遇到了这个问题:

[formats] => Array
    (
        [.mp4] => Array
            (
                [postfix] => .mp4
                [dimensions] => Array
                    (
                        [0] => 1280
                        [1] => 720
                    )
                [duration] => 330
                [duration_string] => 5:30
                [duration_array] => Array
                    (
                        [minutes] => 5
                        [seconds] => 30
                    )
                [file_size] => 51928676
                [file_size_string] => 49.52 Mb
                [timeline_screen_amount] => 0
                [timeline_screen_interval] => 0
                [file_name] => 5.mp4
                [file_path] => 8ad883ae4989f1aaf1da077bf56d9495/0/5/5.mp4
                [timeline_directory] => 
            )
    )

我想知道如何访问 [.mp4] 值,因为它从一个周期开始,它会导致问题。我尝试了许多变化,例如:

{{$data.formats..mp3.file_size_string}}
{{$data.formats[.mp3].file_size_string}}
{{$data.[formats][.mp3][file_size_string]}}

等。。。

任何帮助将不胜感激!

我向CMS支持人员询问解决方案,他们提供了以下内容,以防其他人需要知道如何执行此操作:

你必须分配一个额外的变量:

{{assign var="postfix" value=".mp3"}}
{{$data.formats[$postfix].file_size_string}}

您可以使用以下语法来实现此目的:

{{$data.formats['.mp4'].file_size_string}}

您无需创建额外的变量。