Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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_Netbeans - Fatal编程技术网

Php 关联数组中的键是否存在

Php 关联数组中的键是否存在,php,netbeans,Php,Netbeans,我编写了一些PHP代码从MySQL数据库中检索一些数据 我的NetBeans调试器(v7.4)显示所有数组元素和相关键(来自\u db的$data\u array\u),这些键与数据库表中的列字段相对应,但数据库字段未填充的键除外(值为NULL) 但是,当在下面的代码中为与此类非填充数据库字段相对应的say“akey”执行array_key_exists()函数时,array_key_exists()会返回一个“true”值(而不是预期的false),就好像该键确实存在一样(同时,NetBean

我编写了一些PHP代码从MySQL数据库中检索一些数据

我的NetBeans调试器(v7.4)显示所有数组元素和相关键(来自\u db的$data\u array\u),这些键与数据库表中的列字段相对应,但数据库字段未填充的键除外(值为NULL)

但是,当在下面的代码中为与此类非填充数据库字段相对应的say“akey”执行array_key_exists()函数时,array_key_exists()会返回一个“true”值(而不是预期的false),就好像该键确实存在一样(同时,NetBeans调试器也不会显示来自_db['akey']的$data_array_)

我确信数据库函数array_key_exists()工作正常。我解释错了什么吗?如果密钥对应的数据库值为NULL,则该密钥是否存在

$data_array_from_db = $corpdb->GetSpecificDBRecords($sqlquery5); //GetSpecificDBRecords() includes some PDO statements
if (array_key_exists('akey', $data_array_from_db)) { // Database value is optional; exists?
  $response_array[0]['akey'] = $data_array_from_db['akey']; // This line executed while akey does not show in NetBeans debuggers
}
else { // Database value does not exist; set to 0
  $response_array[0]['akey'] = 0;
}

NULL
是一个值,如果要替换它,需要检查它。更改:

if(array_key_exists('akey',$data_array_from_db) ){
致:


或者只是检查它是否存在并且不是空的:

if (!empty($data_array_from_db['akey'])) {

从\u db中打印\u r或var\u转储$data\u array\u会很有用……是的,它存在并且它的值是
NULL
。。。您还应该检查手册本身()中的值:注意:出于向后兼容性的原因,如果key是在给定为array的对象中定义的属性,那么array_key_exists()也将返回TRUE。不应依赖此行为,应注意确保数组是一个数组。若要检查对象中是否存在属性,请使用property_exists()。执行
var_dump($data_array_from_db)
并查看其中显示的内容。如果您是从数据库中获取此信息,则有意义的是,具有空值的字段仍有相应的键可用。thnx用于所有注释(!)我刚刚使用了var_dump,它确实显示了键。我仍然想知道为什么netbeans不显示这些特定的键(?)
if (!empty($data_array_from_db['akey'])) {