使用数组作为Smarty中第二个数组的关键(PHP)

时间:2009-06-04 20:10:39

标签: php smarty

我在代码中运行了两个循环,我想使用数组中的元素作为第二个数组中的键,但我不确定如何使用Smarty执行此操作。

$dateAndUserForEdit.$key.edit_id”包含一个整数(从数据库中提取)

我想在第二个循环中使用该值作为键,如果我在整数中进行编码,则运行正常:

{foreach from=$historyOfRepair.9 key=key item=i}

我一直在尝试的那种伪代码是:

{foreach from=$historyOfRepair.{$dateAndUserForEdit.$key.edit_id} key=key item=i}

但当然,这不起作用!有人可以帮忙吗?

4 个答案:

答案 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数组的当前项的键。否则可行(也经过测试:))。