【问题标题】:Twig Multidimensional Array Variable Not DisplayingTwig 多维数组变量不显示
【发布时间】:2015-07-28 21:54:29
【问题描述】:

数据库查询的结果使用以下代码填充数组:

if (is_array($result)) {

    $column_count = (int)ceil( count($result) / 2 );
    $row_count = (int)0;
    $column = 1;

    foreach ($result AS $value) {

        $array['concordance'][$column][] = [
            'concordance_word' => $value['word'],
            'book_name'        => $value['book_name'],
            'chapter'          => $value['chapter'],
            'verse'            => $value['verse'],
        ];

        ++$row_count;
        if ( $column_count === $row_count ) { ++$column; }

    }
}

循环填充后的 $array 示例是:

Array
(
    [concordance] => Array
        (
            [1] => Array
                (
                    [0] => Array
                        (
                            [concordance_word] => aaron
                            [book_name] => Micah
                            [chapter] => 6
                            [verse] => 4
                        )

                    [1] => Array
                        (
                            [concordance_word] => aaron
                            [book_name] => Luke
                            [chapter] => 1
                            [verse] => 5
                        )

                    [2] => Array
                        (
                            [concordance_word] => aaron
                            [book_name] => Acts
                            [chapter] => 7
                            [verse] => 40
                        )

我不明白为什么以下内容无法访问 Twig 视图中的变量:

<h3>{{ document.concordance.1.0.concordance_word|capitalize }}</h3>

在我将 $column 添加到数组之前,可以访问该变量,如下所示:

<h3>{{ document.concordance.0.concordance_word|capitalize }}</h3>

我没有对控制器进行任何更改。 dump 命令显示正在传递的变量。 Twig 是否将 1 解释为真的?是否有一些 |语法 我必须申请 Twig 才能将其视为多维数组变量?

【问题讨论】:

  • 你试过&lt;h3&gt;{{ document.concordance[1][0].concordance_word|capitalize }}&lt;/h3&gt;吗?
  • 这会导致错误消息:Unexpected token "name" of value "concordance_word" ("end of print statement" expected)
  • 奇怪,我无法重现您的问题,最后尝试一下:&lt;h3&gt;{{ document['concordance'][1][0].concordance_word|capitalize }}&lt;/h3&gt;
  • 你说得对。我错过了。关注 [0] 如果您将此作为答案发布,我会投票给您。谢谢你帮助我。
  • 嗨@Ron,不客气!对不起,我不明白:第一条评论好还是最后一条评论好?

标签: php symfony multidimensional-array twig


【解决方案1】:

您可以使用方括号访问数组,如下所示:

<h3>{{ document.concordance[1][0].concordance_word|capitalize }}</h3>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    相关资源
    最近更新 更多