2 つの配列を比較したいのですが、1 つはデフォルトで設定され、もう 1 つはユーザー入力によって設定されています。
デフォルトでのみブール値を設定した場合、ユーザーが文字列または数値を使用しないようにしたい。たとえば、'truex' または '1' は受け入れられません。
以下は私のコードのサンプルです、
$default = array(
"randomise" => false,
"id" => null
);
$config = array(
"randomise" => truex
);
function process_array($default,$config)
{
# Loop the array.
foreach($default as $key => $value)
{
if ((filter_var($default[$key], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL) && (filter_var($config[$key], FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL))
{
return 'true or false only';
}
}
# Return the result.
return $array;
}
print_r(process_array($default,$config));
ただし、ユーザーが正しいデータ型を指定しても、このコードは「true または false のみ」を返します。どうすればこれを修正できますか?