我正在使用一系列if语句来查看值是否在数组中,如果是,则更改变量。问题是它只适用于找到的最后一个值。
我的代码是:
$accommodation_list = array();
$ind_apt_query = array();
$cottage_query = array();
$asst_living_query = array();
$skilled_care_query = array();
$memory_loss_query = array();
if(isset($_GET['accommodations'])){
$accommodation_values = implode(', ', $_GET['accommodations']);
$accommodation_list = explode(" ", $accommodation_values);
if( in_array('cottage_units', $accommodation_list) ){
$cottage_query = array(
'key' => 'rfp_cottage_units',
'value' => '',
'compare' => '!=',
);
}
if( in_array('ind_apts', $accommodation_list) ){
$ind_apt_query = array(
'key' => 'rfp_ind_apt',
'value' => '',
'compare' => '!=',
);
}
if( in_array('asst_living', $accommodation_list) ){
$asst_living_query = array(
'key' => 'rfp_assist_living_units',
'value' => '',
'compare' => '!=',
);
}
if( in_array('skilled_care', $accommodation_list) ){
$skilled_care_query = array(
'key' => 'rfp_skilled_care_beds',
'value' => '',
'compare' => '!=',
);
}
if( in_array('memory_loss', $accommodation_list) ){
$memory_loss_query = array(
'key' => 'rfp_memory_loss_units',
'value' => '',
'compare' => '!=',
);
}
}
因此,如果$ accommodation_list = Array([0] => cottage_units,[1] => asst_living,[2] => memory_loss),只会将$ memory_loss_query填充其他人($ cottage_query和$ asst_living_query)仍然是空的。
如何让它与数组中的所有值一起使用?
答案 0 :(得分:2)
您在<space>
上爆炸,然后在(
[0] => cottage_units,
[1] => asst_living,
[2] => memory_loss
)
上爆炸结果,这意味着您的数组值将包含逗号:
asst_living
所以你最终将asst_living,
与明显失败的in_array()
进行比较。
没有必要破坏然后重建阵列,只需直接检查您对原始阵列的if (in_array('asst_living', $_GET['accommodations'])) {
// ...
}
电话:
& "path with spaces\script.ps1"