聪明的foreach如何正常工作?

时间:2014-10-13 12:53:27

标签: php foreach smarty

我的聪明的foreach有问题。它没有输出正确的东西:S 我尝试了很多东西,但从未奏效。

$data = array(
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test")
    );

    $smarty->assign('invTalents', $data);

    return array(
        array(
        'type' => 'html',
        'html' => $smarty->fetch('*****/*****/smarty.tpl'),

        ),
    );

在smarty.tpl中我得到了这个:

    <table class="designedTable" style="width:96%; font-size:11px;">
<thead>
    <tr>
        <td class="clear_first brdRight">
        </td><td class="white_last">
    </td></tr>
</thead>
<tbody>


    {foreach from=$invTalents item=data}
        <tr>
            <td class="clear_first brdRight">{$invTalents->data}</td><td class="white_last"><strong>0</strong></td>
        </tr>
        {/foreach}

</tbody>
<tfoot>
    <tr><td class="clear_first brdRight"></td><td class="white_last"></td></tr>
</tfoot>
</table>

我做错了什么? :)

2 个答案:

答案 0 :(得分:0)

@ H34D,请查看以下代码。

$data = array(
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test"),
        array('name' =>  "name", 'value' => "test")
    );

$smarty->assign('invTalents', $data);

在您的视图中,您可以通过这种方式访问​​您的数组(即invTalents)。 (Smarty一般行为)

{foreach $invTalents as $inv} 
 {$inv.name} 
 {$inv.value} 
{/foreach}

因此,根据您的视图代码的完全行为,您可以访问如下所示的数组。 (根据您的代码结构)

{foreach $invTalents as $inv}
    <tr>
        <td class="clear_first brdRight">{$inv.name}</td><td class="white_last"><strong>0</strong></td>
    </tr>
{/foreach}

答案 1 :(得分:0)

{foreach from=$invTalents item=data}

通过此循环遍历invTalents变量并将当前值分配给data。因此,在输出中,您需要使用数据变量。此外,您还需要使用您在PHP中定义的密钥({1}}和name来访问数组。

value

Smarty文档中的更多信息和示例:http://www.smarty.net/docsv2/de/language.function.foreach.tpl