2013-05-06 16 views
0

如何將foreach輸出保存到Smarty中的另一個數組並在{foreach}之外使用新數組?將foreach()輸出保存到數組中(Smarty)

例子:

{foreach name=cats from=$category->subcategories item=n} 

/*here would be something like $newArr = ($n->name,$n->url)*/ 
{/foreach} 

<a href="$newarr->name">hi</a> 

回答

1

不知道很多關於Smarty的,但簡單的方法這個PHP中使用array_push函數來完成。或者用[](同樣的事情):

$newArr = array(); 
foreach($oldArr as $oldArr) { 
    $newArr[] = $n->name,$n->url; 
    // EQUIVALENT TO 
    array_push($oldArr, $n->name,$n->url); 
} 
0

你應該從後面的代碼。 Smarty是用於查看圖層,並且此類圖層不應該有可能對顯示它之外的其他變量執行某些操作。您可以將輸出保存到php代碼中,然後將其分配給您的視圖。但是如果你真的想在smarty中做到這一點,你可以使用php標籤http://www.smarty.net/docsv2/en/language.function.php.tpl但我不推薦它。

還有一個有趣的標籤

{追加}

{追加}用於創建或模板的執行過程中附加模板變量陣列。

http://www.smarty.net/docs/en/language.function.append.tpl

+0

感謝信息,但是當我嘗試使用{} PHP代碼它不會顯示陣列 {} PHP 的foreach $分類 - >子類別$ N { 回聲$輸出n;} {/ php} 但{php} $ n = 1; echo $ n {/ php}非常出色。那麼你能告訴我如何在PHP代碼中將輸出保存到數組中嗎?謝謝。 – user2298672 2013-05-06 10:17:11