我有一些类似于下面的JSON:
{"internalArray": {"201": "A", "202": "B", "5": "C", "46": "D"},
"data": "ABCDEFG",
"data2": "TSXPIIF"}
我使用以下PHP代码进行解码:
$jsonOutput = json_decode($output);
我想从JSON数据中获取"internalArray"的访问权限,因此我使用以下方式引用它:
$internalArray = $jsonOutput->{'internalArray'};
当我对$internalArray进行var_dump时
object(stdClass)#4 (4)
{ ["201"]=> string(1) "A"
["202"]=> string(1) "B"
["5"]=> string(1) "C"
["46"]=> string(1) "D"
}
我发现我可以将其转换为数组,所以我做了以下操作:
$internalArray = (array) $jsonOutput->{'internalArray'};
然而,现在我有了这个数组,但似乎无法使用类似以下的值来访问它
$internalArray["202"], $internalArray["201"], etc.
当我尝试通过键访问它时,它返回NULL。但是,当我有这样的代码时:
foreach ($internalArray as $key => $value)
{
echo $key . "," . $value;
}
它按预期输出值,如“202,A”等。
然而,在相同的代码中,如果我将其更改为
foreach ($internalArray as $key => $value)
{
echo $key . "," . $internalArray[$key];
}
它不起作用!
有人能解释一下为什么我无法使用键访问$internalArray中的值吗?我在这里做错了什么基本的事情吗?
,我都会得到
NULL`); 数字字符串作为数组键是不可访问的。如果您将数字作为键,则无论如何都会将其转换为int。 - NullUserExceptionstrval
。 - NullUserException