【发布时间】:2015-02-06 08:32:55
【问题描述】:
所以我刚刚开始使用 mustache.php,但我一直在尝试循环二维数组。我有一个看起来像这样的数组...
$FeedArray = array(3) { [0]=> array(3) { ["entity"]=> string(10) "mail"
["time"]=> string(19) "2015-02-05 05:10:26"
["title"]=> string(0) "what's up?" }
[1]=> array(3) { ["entity"]=> string(5) "event"
["time"]=> string(19) "2015-02-05 03:16:54"
["title"]=> string(15) "asfasggasdgasdg" }
[2]=> array(3) { ["entity"]=> string(10) "mail"
["time"]=> string(19) "2015-01-11 14:24:08"
["title"]=> string(24) "lunch?" } }
我正在尝试这样循环:
$eventTemplate = file_get_contents('templates/GroupPageEvent.mustache');
$postTemplate = file_get_contents('templates/GroupPagePost.mustache');
foreach ($FeedArray as $entity => $row){
if ($row['entity_type']=='mail'){
echo $m->render($postTemplate, $entity);
}
if ($row['entity_type']=='event'){
echo $m->render($eventTemplate, $entity);
}
}
我知道我的模板运行良好。只是没有正确传递子数组($entity),所有输出的模板都是空的。
if $row['entity_type'}==? 也可以正常读取。
任何帮助表示赞赏。
【问题讨论】:
-
您定义了
entry,但读取了entry_type。将$row['entity_type']更改为$row['entity'] -
无关:如果您将模板解析移到
foreach循环之外,您将获得更好的性能。将前两行更改为:$eventTpl = $m->loadTemplate(file_get_contents(...))并将循环内的调用更改为echo $eventTpl->render($entity)。 -
@bobthecow...非常感谢。我会试一试。
标签: php arrays mustache mustache.php