遍历二维数组并传递给小胡子模板

looping through two dimensional array and passing to mustache template

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

感谢任何帮助。

这是因为您将键传递给渲染函数,$entity 包含数组键 (0,1,2...) 并且您的实体数组存储在 $row

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

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

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

而且在数组中你得到的是 'entity' 键而不是 'entity_type' 所以也改变这个:

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

至:

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