当密钥以句点开始时,如何在smarty中访问数组值?

时间:2014-11-19 21:22:50

标签: php arrays smarty

我使用的是使用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]}}

等...

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

您无需创建额外的变量。