php – Smarty:检查变量是否在数组中
发布时间:2020-09-01 05:30:20 所属栏目:PHP 来源:互联网
导读:我正在使用php和smarty.在 PHP我有两个数组: $code = Array( [n_id] = 1 [t_code] = ABC123 [t_description] = Test code [b_enabled] = Yes [n_type] = 3 [dt_start] = [dt_end] = [n
我正在使用php和smarty.在 PHP我有两个数组: $code = Array ( [n_id] => 1 [t_code] => ABC123 [t_description] => Test code [b_enabled] => Yes [n_type] => 3 [dt_start] => [dt_end] => [n_min_req_gbp] => 0 [n_min_req_usd] => 0 [n_amount_gbp] => [n_amount_usd] => [n_max_overall_gbp] => [n_max_overall_usd] => [n_extra] => 6 [b_reuse] => No [n_applications] => Array ( [0] => 2 ) ) 和 $all_application = Array ( [1] => New registration [2] => Mid-subscription upgrade [3] => Subscription renewal [4] => Additional purchase ) 注意,第二个数组可以 – 并且将 – 增长,这是参考数据,从中构建第一个数组中的n_applications数组字段.也就是说,n_applications中的数组将包含来自$all_applications数组的键的子集. 现在,我将这两个数组分配到模板中: $template->assign('code',$code); $template->assign('apps',$all_applications); 在模板中,我正在创建一个表单来编辑$code数组中的字段.除了“应用程序”选择之外,一切正常.我想预先选择那些已经在n_applications字段中的应用程序.所以,在我的模板中我有这个: <select name="c_apps[]" size="3" class="multiselect" multiple="multiple"> {foreach from=$apps key=k item=a} {assign var=v value=$k|@array_search:$code['n_applications']} <option value="{$k}"{if $v!==FALSE} selected="selected"{/if}>{$a|escape}</option> {/foreach} </select> 但是这不能按预期工作 – 并且所有选项最终都被选中.我尝试使用in_array函数 – 但结果相同.实现我追求的目标的最佳途径是什么? 在一切可能的方向上挣扎之后,我终于设法将它拉下来(仅限智能代码)<select name="c_apps[]" size="3" class="multiselect" multiple="multiple"> {foreach from=$apps key=k item=a} {if @in_array($k,$code.n_applications)} {assign var=v value=true} {else} {assign var=v value=false} {/if} <option value="{$k}"{if $v} selected="selected"{/if}>{$a|escape}</option> {/foreach} </select> 这就是诀窍. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |