循环通过二维数组并传递给胡子模板

时间:2015-02-06 08:32:55

标签: php arrays mustache mustache.php

所以我刚刚开始使用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'}==?也正常阅读。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

这是因为您将密钥传递给渲染函数,$entity包含数组键(0,1,2 ...),而您的enity数组存储在$row

foreach ($FeedArray as $entity => $row){

在这种情况下你应该这样做:

echo $m->render($postTemplate, $row);

并且在数组中你得到了' entity' key not' entity_type'所以改变这个:

$row['entity_type']=='mail'

到:

$row['entity']=='mail'