一連の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 =配列([0] => cottage_units、[1] => asst_living、[2] => memory_loss)のみの$ memory_loss_queryが移入されます他のもの($ cottage_queryと$ asst_living_query)はまだ空です。
これを配列のすべての値で使用するにはどうすればよいですか?
冒頭に内破/爆発するものを取り除く:
だけ元の配列に直接ご
in_array()
コールを確認し、アレイを再構築そして破壊する必要はありません。 – Calimeroあなたは ''にimplodingしてから ''に結果を展開します。これは、配列の値にコンマが入ることを意味します。 –