我在代码中运行了两个循环,我想使用数组中的元素作为第二个数组中的键,但我不确定如何使用Smarty执行此操作。
“$dateAndUserForEdit.$key.edit_id
”包含一个整数(从数据库中提取)
我想在第二个循环中使用该值作为键,如果我在整数中进行编码,则运行正常:
{foreach from=$historyOfRepair.9 key=key item=i}
我一直在尝试的那种伪代码是:
{foreach from=$historyOfRepair.{$dateAndUserForEdit.$key.edit_id} key=key item=i}
但当然,这不起作用!有人可以帮忙吗?
答案 0 :(得分:5)
接下来的事可能有效(目前无法测试):
{assign var=edit_id value=$dateAndUserForEdit.$key.edit_id}
{foreach from=$historyOfRepair.$edit_id key=key item=i}
答案 1 :(得分:1)
我不知道旧版本是否需要这个技巧,但你可以(我相信已经相当一段时间了)这样做:
鉴于:
{$someArray.someKey=9}
{$otherArray.9=$someValue}
等效:
{$otherArray[$someARray.$someKey]=$someValue}
答案 2 :(得分:0)
我只是在这里发表评论,因为还没有人给你任何建议...... 我从来没有使用过Smarty,因为我一直只是制作自己的模板系统(所以我可能在这里无知而且我的建议毫无用处)......
你可以在没有聪明的情况下构建你的数组,然后将它传递给Smarty进行显示吗?就个人而言,这可能不是基于自定义模板引擎代码,而是基本的东西。
答案 3 :(得分:0)
我同意Arvo。您需要将id分配给临时变量,以便它可以在foreach循环中用作替换。请注意,在他的示例代码中,$ key的值将替换为$ historyOfRepair数组的当前项的键。否则可行(也经过测试:))。