【发布时间】: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 才能将其视为多维数组变量?
【问题讨论】:
-
你试过
<h3>{{ document.concordance[1][0].concordance_word|capitalize }}</h3>吗? -
这会导致错误消息:Unexpected token "name" of value "concordance_word" ("end of print statement" expected)
-
奇怪,我无法重现您的问题,最后尝试一下:
<h3>{{ document['concordance'][1][0].concordance_word|capitalize }}</h3> -
你说得对。我错过了。关注 [0] 如果您将此作为答案发布,我会投票给您。谢谢你帮助我。
-
嗨@Ron,不客气!对不起,我不明白:第一条评论好还是最后一条评论好?
标签: php symfony multidimensional-array twig