Php 如何简单地检查一条语句中的各种变量?

Php 如何简单地检查一条语句中的各种变量?,php,arrays,variables,if-statement,Php,Arrays,Variables,If Statement,我想为同一个语句检查大约7个变量,但这不是必需的。所有这些变量都有一个带有自定义键的数组 例如,我有以下代码: $generalSettings = array( "lights" = $_POST['generalLights'], "tones" = $_POST['generalTones'] ); (还有几个。) 现在,我想检查值是否为1;如果不是,则必须将该值设置为0 我会这样做: if($generalSettings['ligts'] == 1) { $generalSettin

我想为同一个语句检查大约7个变量,但这不是必需的。所有这些变量都有一个带有自定义键的数组

例如,我有以下代码:

$generalSettings = array(
"lights" = $_POST['generalLights'],
"tones" = $_POST['generalTones']
);
(还有几个。)

现在,我想检查值是否为1;如果不是,则必须将该值设置为0

我会这样做:

if($generalSettings['ligts'] == 1) {
$generalSettings['lights'] = 1;
} else {
$generalSettings['lights'] = 0;
}
if($generalSettings['tones'] = 1) {
$generalSettings['tones'] = 1;
} else {
$generalSettings['tones'] = 0;
}
这是一个很大的工作,如果你想到3个数组有4个项目,4个数组有5个项目


我现在的问题是:我可以用一种更简单的方法来做这件事吗?如果可以,怎么做?

你可以像下面这样检查

$arr = array('a'=>1,'b'=>4,'c'=>9,'d'=>1);    
循环遍历数组并检查值,如果值不是1,则设置为0

foreach($arr  as $key=>$value){
     if($value != 1){
         $arr[$key] = 0;
     }
 }

 echo "<pre>";print_r($arr);

Array
(
    [a] => 1
    [b] => 0
    [c] => 0
    [d] => 1
)
foreach($arr as$key=>$value){
如果($value!=1){
$arr[$key]=0;
}
}
回声“;印刷费($arr);
排列
(
[a] =>1
[b] =>0
[c] =>0
[d] =>1
)

您可以按如下方式进行检查

$arr = array('a'=>1,'b'=>4,'c'=>9,'d'=>1);    
循环遍历数组并检查值,如果值不是1,则设置为0

foreach($arr  as $key=>$value){
     if($value != 1){
         $arr[$key] = 0;
     }
 }

 echo "<pre>";print_r($arr);

Array
(
    [a] => 1
    [b] => 0
    [c] => 0
    [d] => 1
)
foreach($arr as$key=>$value){
如果($value!=1){
$arr[$key]=0;
}
}
回声“;印刷费($arr);
排列
(
[a] =>1
[b] =>0
[c] =>0
[d] =>1
)
使用循环:

使用循环用于:


(foreach元素作为元素){check(element)}(foreach元素作为元素){check(element)}变量$key是关键字还是我应该定义它?如果我必须定义它:我应该如何定义?看起来很简单,谢谢!它是由保存迭代器元素的
foreach
循环创建的变量。不需要定义/声明它。变量$key是关键字还是我应该定义它?如果我必须定义它:我应该如何定义?看起来很简单,谢谢!它是由保存迭代器元素的
foreach
循环创建的变量。无需定义/声明。谢谢。我可以为几个阵列做什么?我可以把这个放在另一个里面吗?是的,怎么做?谢谢。我可以为几个阵列做什么?我可以把这个放在另一个里面吗?我是的,怎么做?