聪明的foreach如何正确工作


smarty foreach how does it work correctly?

我灵巧的前臂有问题。它没有输出正确的东西: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>

我做错了什么?:)

{foreach from=$invTalents item=data}

这样,您就可以循环使用invTalents变量,并将当前值指定给data。因此,在您的输出中,您需要使用数据变量。此外,您还需要使用在PHP中定义的键(即namevalue)访问数组。

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

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

@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)。(一般智能行为)

{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}