Twig 多维数组变量不显示

Twig Multidimensional Array Variable Not Displaying

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

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 解释为 true?有没有什么|语法我必须申请Twig才能把这个看成多维数组变量?

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

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