如何将 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>
如何将 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>
不太了解聪明,但在 PHP 中执行此操作的简单方法是使用array_push函数。或者用 [] 来做(同样的事情):
$newArr = array();
foreach($oldArr as $oldArr) {
$newArr[] = $n->name,$n->url;
// EQUIVALENT TO
array_push($oldArr, $n->name,$n->url);
}
你应该从后面的代码中做到这一点。Smarty 用于视图层,这样的层不应该对变量做一些事情,而不是显示它。您可以将输出保存到 php 代码中的数组,然后将其分配给您的视图。但如果你真的想在 smarty 中做到这一点,你可以使用php 标签 http://www.smarty.net/docsv2/en/language.function.php.tpl但我不推荐它。
还有一个有趣的标签
{附加}
{append} 用于在模板执行期间创建或附加模板变量数组。