我有一个名为$product
的简单关联数组。
var_dump[$product]
的外观如下
array(5) {
["sku"]=>
string(9) "001R00610"
["name"]=>
string(28) "Xerox 001R00610 Transfer Kit"
["image_label"]=>
string(28) "Xerox 001R00610 Transfer Kit"
["small_image_label"]=>
string(28) "Xerox 001R00610 Transfer Kit"
["thumbnail_label"]=>
string(28) "Xerox 001R00610 Transfer Kit"
}
但是当我尝试使用var_dump($product['sku'])
获取sku的值时,它返回空值吗?
var_dump($product['sku']);
返回
NULL
我注意到sku
似乎有换行符,但是我不确定是什么原因引起的,或者是否与我的问题有关。
答案 0 :(得分:1)
php不会使用var_dump在键中打印换行符,它们成为空格字符,但仍在访问器中换行。这段代码:
$obj = array("foo\r" => "bar");
var_dump($obj);
打印此:
array(1) { ["foo "]=> string(3) "bar" }
,因此无法访问:
$obj["foo"]; //returns null
$obj["foo "]; //returns null
仅:
$obj["foo\n"] //returns bar
当数组键被作为位进行比较时(我认为)。
答案 1 :(得分:0)
已解决
根据@aynber的建议,我尝试执行var_dump(array_keys($product));
并返回以下内容:
array(5) {
[0]=>
string(6) "sku"
[1]=>
string(4) "name"
[2]=>
string(11) "image_label"
[3]=>
string(17) "small_image_label"
[4]=>
string(15) "thumbnail_label"
}
数组键sku的长度错误。
数组由@Nigel Ren指出的CVS创建。从UTF-8-BOM
转换为UTF-8
后,它将返回期望值。
var_dump($product['sku']);
返回string(9) "001R00610"