Я использую серию операторов 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) останутся пустыми.
Как я могу заставить это работать со всеми значениями в массиве?
Ты взрываешься на <comma><space>
а затем взорвать результат на <space>
Это означает, что в значениях вашего массива будут запятые:
(
[0] => cottage_units,
[1] => asst_living,
[2] => memory_loss
)
Таким образом, вы заканчиваете сравнение asst_living
с asst_living,
что, очевидно, не удается.
Там нет необходимости уничтожать, а затем восстановить массив, просто проверьте ваш in_array()
вызовите непосредственно исходный массив:
if (in_array('asst_living', $_GET['accommodations'])) {
// ...
}
Других решений пока нет …