Php 在将每个变量添加到数组之前验证其存在性
我将从十几个不同的文本字段中提取数据到一个多维数组中,但我希望只有在有元素添加到其中时才能创建一个键。例如:Php 在将每个变量添加到数组之前验证其存在性,php,arrays,validation,variables,conditional,Php,Arrays,Validation,Variables,Conditional,我将从十几个不同的文本字段中提取数据到一个多维数组中,但我希望只有在有元素添加到其中时才能创建一个键。例如: $colors = array( 'red' => $options['red_users'], 'orange' => $options['orange_users'], 'green' => $options['green_users'] ); 假设“orange_用户”输入字段中没有数据。除了对每个变量运行条件检查外,例如 if(!$o
$colors = array(
'red' => $options['red_users'],
'orange' => $options['orange_users'],
'green' => $options['green_users']
);
假设“orange_用户”输入字段中没有数据。除了对每个变量运行条件检查外,例如
if(!$options['orange_users']){
…如何有效地验证我从中提取的每个输入字段是否存在数据?最简单的方法是使用三值if
$replacements = array(
'red' => isset($vbulletin->options['red_users'])?$vbulletin->options['red_users']:null,
'orange' => isset($vbulletin->options['orange_users'])?$vbulletin->options['orange_users']:null,
'green' => isset($vbulletin->options['green_users'])?$vbulletin->options['green_users']null
);
然后使用array_filter清除空值
$replacements = array_filter($replacements);
foreach($vbulletin->options as$X){…}
“除了对每个变量运行条件检查”-如果确实要验证每个变量是否为空,则需要对每个变量进行条件检查。在您的示例中,基本上是复制数组,更改键。因此在这种特定情况下,最有效的方法是仅使用原始数组(如果要加入多个数组,也可以将整个数组不变地放在另一个数组中)。这就是我要找的。谢谢。不过,我注意到你说的“最简单”。这意味着这不是最有效的方法,还是有更好的方法?对于其中一种方法,你应该使用isset(或空或数组键存在)如果不存在,您将得到运行时通知。如果未设置红色的值,则您使用的此符号将返回红色的值,因此没有多大意义三元的格式是(表达式?真值:假值)
回答您的第一个问题可能也是最有效、最直接的方法。@jordo我不知道返回值的真实性。但是如果使用isset测试作为比较,它将返回测试结果,而不是测试中变量的值……对吗?