Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 关联数组的元素,当通过键访问时返回NULL,即使存在值_Php - Fatal编程技术网

Php 关联数组的元素,当通过键访问时返回NULL,即使存在值

Php 关联数组的元素,当通过键访问时返回NULL,即使存在值,php,Php,这是一个很奇怪的问题,我只是不知道发生了什么 我有一个关联数组存储在一个名为$suppliers的变量中 这是一个稍微清理过的var\u转储($suppliers): 我试图在foreach循环中访问Company元素,如下所示: foreach( $suppliers as $supplier ): var_dump( $supplier['Company'] ); endforeach; 但我每次都会得到这个值的NULL。可以从循环内访问所有其他值: foreach( $s

这是一个很奇怪的问题,我只是不知道发生了什么

我有一个关联数组存储在一个名为
$suppliers
的变量中

这是一个稍微清理过的
var\u转储($suppliers)

我试图在foreach循环中访问Company元素,如下所示:

foreach( $suppliers as $supplier ):
        var_dump( $supplier['Company'] );
endforeach;
但我每次都会得到这个值的NULL。可以从循环内访问所有其他值:

foreach( $suppliers as $supplier ):
        var_dump( $supplier['Company'] );
        var_dump( $supplier['Website'] );
endforeach;
返回:

NULL
string(20) "http://microsoft.com"
NULL
string(17) "http://google.com"
我已经检查了不可见字符、字符编码问题,似乎没有任何东西可以直接输出Company元素的值

如果我这样做:

foreach( $suppliers as $supplier ):
    foreach( $supplier as $key => $value ):
        var_dump( $supplier[$key] );
    endforeach;
endforeach;
我能够输出“Company”元素,但这是它工作的唯一方式

有什么想法吗?除了元素键中的不可见字符或编码问题之外,是否还有其他原因可能导致类似问题?

[“公司”]中似乎有一个坏字符

您可以将代码修改为以下内容,以确认存在错误字符:

foreach( $suppliers as $supplier ):
    foreach( $supplier as $key => $value ):
        var_dump( htmlentities($key) );
    endforeach;
endforeach;
这将为我返回以下内容:

string(28) "Company"
string(7) "Website"
string(6) "Brands"
string(8) "Contacts"

尝试执行echo var_dump($suppliers[0]['Company'])string(28) "Company" string(7) "Website" string(6) "Brands" string(8) "Contacts"