我有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}
显示如下: {姓名,年龄,日期}
我希望显示的顺序与选中的顺序相同:{年龄,姓名,日期}
知道怎么做吗?
答案 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}
我不知道我的意图是否合适。希望上面的代码可以提供帮助。