2015-02-06 49 views
1

所以我剛剛開始使用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'}==?正在正確讀取。

任何幫助表示讚賞。

+0

您定義了'entry',但是讀了'entry_type'。將'$ row ['entity_type']'更改爲'$ row ['entity']' – 2015-02-06 08:38:43

+0

無關:如果您將模板解析移至'foreach'循環之外,您將獲得更好的性能。將前兩行更改爲:'$ eventTpl = $ m-> loadTemplate(file_get_contents(...))'並將循環內的調用更改爲'echo $ eventTpl-> render($ entity)'。 – bobthecow 2015-02-07 05:48:07

+0

@bobthecow ...謝謝你。我給了那一槍。 – ambe5960 2015-02-07 21:58:47

回答

1

這是因爲你通過關鍵看你的渲染功能,$entity包含數組鍵(0,1,2 ......),你的enity數組存儲在$row

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

你應該這樣做的話:

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

以及在陣列你有 '實體' 的關鍵不是 'ENTITY_TYPE' 所以改變這種過於:

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

至:

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

非常感謝!回顧過去是有道理的。 – ambe5960 2015-02-06 08:43:59