Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组php循环值和键_Php_Arrays - Fatal编程技术网

数组php循环值和键

数组php循环值和键,php,arrays,Php,Arrays,我正在尝试检查键的值: $errorArray=array(); $naamarray["naam"]=false; $naamarray["voornaam"]=false; $naamarray["adres"]=false; $naamarray["woonplaats"]=false; $naamarray["postcode"]=false; $naamarray["telefoonnummer"]=false; $naamarray["geboortedatum"]=f

我正在尝试检查键的值:

$errorArray=array();
 $naamarray["naam"]=false;
 $naamarray["voornaam"]=false;
 $naamarray["adres"]=false;
 $naamarray["woonplaats"]=false;
 $naamarray["postcode"]=false;
 $naamarray["telefoonnummer"]=false;
 $naamarray["geboortedatum"]=false;
 $naamarray["adres"]=false;
 $naamarray["wachtwoord"]=false;
 $naamarray["email"]=false;
 $naamarray["email"]=true;

  foreach($naamarray as $key => $value){
        if($value == false){
            array_push($errorArray,$key);
            echo $key;
            echo $value;
        }
 }

但价值永远不会显现,我错在哪里

在php中,
false
是布尔类型。由于已将其指定给数组值,因此需要使用
var\u dump
查看键的实际值:

var_dump($key);



您可能希望将字符串值指定给数组值。

请注意:
echo false
不会回显任何内容。

尝试以下操作:

$errorArray=array();
 $naamarray["naam"]='false';
 $naamarray["voornaam"]='false';
 $naamarray["adres"]='false';
 $naamarray["woonplaats"]='false';
 $naamarray["postcode"]='false';
 $naamarray["telefoonnummer"]='false';
 $naamarray["geboortedatum"]='false';
 $naamarray["adres"]='false';
 $naamarray["wachtwoord"]='false';
 $naamarray["email"]='false';
 $naamarray["email"]='true';

  foreach($naamarray as $key => $value){
        if($value == 'false'){
            array_push($errorArray,$key);
            echo $key;
            echo $value;
        }
 }

因为它们总是假的,所以毫无意义

echo false;

为您提供

您不能在PHP中回显布尔变量。如果您只是想调试-使用

var_dump($value); 

相反。

有趣的是,钥匙确实会在我的家庭服务器上回响。但话说回来;echo'ing bool false将不会输出任何内容。

尝试在if语句之前回显键和值,以查看您可以确定的内容。回显布尔值只是首先将其转换为字符串。true值强制转换为字符串“1”,false值强制转换为字符串“”(空白)。为什么转换为字符串?从我所知道的上下文来看,使它们成为字符串不会有任何好处,因为在表单验证中,您不会只向用户显示“false”或“true”。使用布尔值是合适的,因为它占用更少的空间,并且在比较($boolean)或(!$boolean)时正确计算为true或false。使用字符串意味着您还必须担心大小写的敏感性,然后我们开始使用True、False、FileNotFound枚举斜率@我不确定OP的要求。如果他的要求与您所说的一样,那么使用布尔值是一条非常规的道路。如果他只是想检查键中的内容,他可以简单地使用字符串值。否则,需要使用
var\u dump
来查看
false
true
值。在将
true
值转换为
1
字符串时,您可以很容易地看到该值。假值是唯一困难的部分。或者,
var\u export
也可用于查看布尔值的本机形式。对于OP,我建议在完成后,而不是在执行期间,简单地
var\u dump
整个errorArray。为什么要进行向下投票?当然,我不建议任何人使用字符串作为布尔值,但var_dump并不是完全友好的UI,也许他希望以一种好的格式显示它,这将允许他这样做。与其将内部值更改为字符串(将自己绑定到特定值,使在其他地方更改或检查它变得更加困难),不如将其作为布尔值使用,在输出时更改值会更容易,例如:echo($value)?'真’:‘假’;或者:var_出口(价值);仍然只适用于调试或系统检查页面。表单验证输出对用户不友好。