将foreach()输出保存到数组(Smarty)

时间:2013-05-06 09:35:11

标签: php content-management-system smarty

如何将foreach输出保存到Smarty中的另一个数组并使用{foreach}之外的新数组?

示例:

{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>

2 个答案:

答案 0 :(得分:1)

对PHP的了解不多,但在PHP中使用array_push函数的简单方法。或者用[](同样的事情)来做:

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

答案 1 :(得分:0)

你应该从后面的代码中做到这一点。 Smarty用于查看图层,并且此类图层不应该对除显示之外的变量执行某些操作。您可以在php代码中将输出保存到数组,然后将其分配给您的视图。但如果你真的想要聪明地做,你可以使用 php标签 http://www.smarty.net/docsv2/en/language.function.php.tpl,但我不推荐它。

还有一个有趣的标签

<强> {附加}

{append}用于在执行模板期间创建或附加模板变量数组。

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