0

如何将 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>
4

2 回答 2

0

不太了解聪明,但在 PHP 中执行此操作的简单方法是使用array_push函数。或者用 [] 来做(同样的事情):

$newArr = array();
foreach($oldArr as $oldArr) {
   $newArr[] = $n->name,$n->url;
   // EQUIVALENT TO
   array_push($oldArr, $n->name,$n->url);
}
于 2013-05-06T10:03:15.830 回答
0

你应该从后面的代码中做到这一点。Smarty 用于视图层,这样的层不应该对变量做一些事情,而不是显示它。您可以将输出保存到 php 代码中的数组,然后将其分配给您的视图。但如果你真的想在 smarty 中做到这一点,你可以使用php 标签 http://www.smarty.net/docsv2/en/language.function.php.tpl但我不推荐它。

还有一个有趣的标签

{附加}

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

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

于 2013-05-06T10:03:34.170 回答