因此,我有一个复选框形式,可以将值存储在数组中,每个键具有多个值。如何测试是否检查了值?对于数组中的值,in_array()不会返回true。
print_r($ array)结果:
Array ( [auto_loans] => auto_36_new,auto_48_new,auto_60_new,auto_72_new [mortgage_rates] => 30_year_fixed,15_year_fixed,7_1_arm_30_year,7_1_arm_15_year,5_1_arm_30_year,5_1_arm_15year,3_1_arm_30_year )
基本上,如果任何复选框为true,我想输出其相应的汇率。
if (in_array("auto_36_new", $array))
{
// print the 36 month auto loan rate
}
elseif (in_array("auto_48_new", $array))
{
// print the 48 month auto loan rate
}
//etc...
即使在阵列打印输出中,我也无法获得任何代码来为任何贷款利率ID返回正数。我究竟做错了什么?我什至不确定in_array是否是处理此问题的最有效方法,所以我并不局限于此。理想情况下,由于前端限制,我想将查询限制为一定数量的结果,但是首先我需要获取表单结果。请暂停!谢谢
答案 0 :(得分:0)
不确定前端实际上是如何收集表单值的,但是看起来在后端,您会得到用逗号连接的校验值...
尝试
$autoLoans = explode(',', $array['auto_loans']);
if (in_array('auto_36_new', $autoLoans)) {
//...
}
答案 1 :(得分:0)
另一种方法是在特定数组元素上使用strpos
。一个例子:
<?php
$arr = [
'auto_loans' => 'auto_36_new,auto_48_new,auto_60_new,auto_72_new',
'mortgage_rates' => '30_year_fixed,15_year_fixed,7_1_arm_30_year,7_1_arm_15_year,5_1_arm_30_year,5_1_arm_15year,3_1_arm_30_year',
];
if (strpos($arr['auto_loans'], 'auto_36_new') !== false) {
// print the 36 month auto loan rate
} elseif (strpos($arr['auto_loans'], 'auto_48_new') !== false) {
// print the 48 month auto loan rate
}
// etc...