Smarty按特定顺序显示表格

时间:2016-12-15 08:36:25

标签: php smarty

我有2个表:表模块包含模块。模块是包含字段的表。 Tables Modules是一个表格表。

另一个表是Selected,其中包含选定的字段。

Modules = {Module1}

模块1 = {名称,年龄,日期,添加}

已选择= {年龄,姓名,日期}

Selected中的字段以这种方式显示在我的tpl中:

{foreach key=m_key item=m_label from=$Modules }
  {foreach key=f_key item=f_label from=$m_label }
     <option value="{$ f_key}" {if !empty($Selected) && in_array($f_key,array_map('decode_html',$Selected))}selected=""{/if}>{vtranslate($f_key, $TEST)}</option>
  {/foreach}
{/foreach}

显示如下: {姓名,年龄,日期}

我希望显示的顺序与选中的顺序相同:{年龄,姓名,日期}

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

{foreach key=m_key item=m_label from=$Modules }

    {php}
    $m_label = !empty($Selected) ? array_merge(array_intersect($Selected, $m_label), array_diff($m_label, $Selected)) : $m_label;
    {?php}

    {foreach key=f_key item=f_label from=$m_label }
         <option value="{$ f_key}" {if !empty($Selected) && in_array($f_key,array_map('decode_html',$Selected))}selected=""{/if}>{vtranslate($f_key, $TEST)}</option>
    {/foreach}
{/foreach}

我不知道我的意图是否合适。希望上面的代码可以提供帮助。