【问题标题】:How to pull a value out a or multi dimensional array using twig如何使用 twig 从一个或多维数组中提取一个值
【发布时间】:2015-09-22 14:38:14
【问题描述】:

我正在做一个测试项目来学习 symfony2/twig。我要做的就是显示由位置确定的图像列表。

我正在从 Instagram 的 API 中检索这些图像的数据。 API 发回 JSON 数据。对于每张图像,都有丰富的信息。我只需要将 low_resolution 值放在图像标签中。

我知道如何使用标准 PHP 来遍历数据。但是,我不知道如何使用 TWIG 来做到这一点。我只想在图像标签中显示 low_resolution url。我得到的壁橱如下:

{% if images_array == true %}
        {% for key,value in images_array %}
            {{ value.link }}

            {% for key,value in value.images %}
                <div class="col-md-3">
                    <img src="{{ value.url }}" alt="" class="thumbnail img-responsive" />                   
                </div>
            {% endfor %}

        {% endfor %}
    {% endif %}

上面的问题是它遍历了[images]中的所有[url]而不是显示来自[low_resolution]的值

以下是从 Instagram 引入的数据的第一个索引。

Array
(
    [0] => Array
        (
            [attribution] => 
            [tags] => Array
                (
                    [0] => dubai
                )

            [location] => Array
                (
                    [latitude] => -29.854119007
                    [name] => ICC Durban Exhibition Centre,Durban,South Africa
                    [longitude] => 31.029556697
                    [id] => 450025614
                )

            [comments] => Array
                (
                    [count] => 0
                    [data] => Array
                        (
                        )

                )

            [filter] => Normal
            [created_time] => 1442931165
            [link] => https://instagram.com/p/775BhjE1kn/
            [likes] => Array
                (
                    [count] => 0
                    [data] => Array
                        (
                        )

                )

            [images] => Array
                (
                    [low_resolution] => Array
                        (
                            [url] => https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s320x320/e35/11887246_500339553458410_480642133_n.jpg
                            [width] => 320
                            [height] => 320
                        )

                    [thumbnail] => Array
                        (
                            [url] => https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s150x150/e35/11887246_500339553458410_480642133_n.jpg
                            [width] => 150
                            [height] => 150
                        )

                    [standard_resolution] => Array
                        (
                            [url] => https://scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/11887246_500339553458410_480642133_n.jpg
                            [width] => 640
                            [height] => 640
                        )

                )

            [users_in_photo] => Array
                (
                )

            [caption] => Array
                (
                    [created_time] => 1442931165
                    [text] => Crecimiento importante a nivel Turistico y aeroportuario en #Dubai
                    [from] => Array
                        (
                            [username] => joseantonio1977
                            [profile_picture] => https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-19/11261324_916468171759729_1477908664_a.jpg
                            [id] => 194601237
                            [full_name] => Jose Antonio Lopez Sosa
                        )

                    [id] => 1079707331921664292
                )

            [type] => image
            [id] => 1079707329077926183_194601237
            [user] => Array
                (
                    [username] => joseantonio1977
                    [profile_picture] => https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-19/11261324_916468171759729_1477908664_a.jpg
                    [id] => 194601237
                    [full_name] => Jose Antonio Lopez Sosa
                )

        )

【问题讨论】:

    标签: arrays symfony multidimensional-array twig


    【解决方案1】:

    替换这个:

        {% for key,value in value.images %}
            <div class="col-md-3">
                <img src="{{ value.url }}" alt="" class="thumbnail img-responsive" />                   
            </div>
        {% endfor %}
    

    作者:

        <div class="col-md-3">
            <img src="{{ value.images.low_resolution.url }}" alt="" class="thumbnail img-responsive" />                 
        </div>
    

    确保不要在多个循环中使用两次keyvalue 变量

    基于另一个 stackoverflow 答案,以下是如何在 TWIG 中的关联数组中导航:https://stackoverflow.com/a/14199125/684101

    【讨论】:

    • 您好 CoachNono,我尝试了您的建议,但收到以下错误消息:在 default/geogram.html 中呈现模板(“注意:数组到字符串转换”)期间引发异常。第 17 行的树枝。
    • 尝试新代码,不带括号,只调用图像,我不确定确切的语法,但我相信第一个错误是由于键和值定义了两次
    • 返回所有 3 个版本的图像,就像我的代码一样。我在哪里可以找到有关此的适当文档。我只能找到以下页面:twig.sensiolabs.org/doc/tags/for.html 不包括多维数组。
    • 哦,我知道你的问题是什么,你不想要全部三个,只需要低分辨率,对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多