Серия операторов if, использующих in_array, работает только с последним

Я использую серию операторов 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) останутся пустыми.

Как я могу заставить это работать со всеми значениями в массиве?

1

Решение

Ты взрываешься на <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'])) {
// ...
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector