为什么数组索引未定义为未定义?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么数组索引未定义为未定义?相关的知识,希望对你有一定的参考价值。
我无法找出以下代码为什么不起作用。
我有一个来自远程服务器的JSON答案,其中包含以下数据:
...., "UserId":{"50423":"Free Kkludkjta","54379":"Sjkllyuu00e9lkj Nolla","67103":"Tswtu00f3 BLLA","64469":"Uzu00e1h G","46699":"RTu00e1sdt UTSF","46873":"Tamu00e1s XXXX"}, ...
(交换名称,但由于在查询中有一些特殊的字符,所以我保留了这些字符)
而且我有以下代码片段,给出了'idx 64469的数组索引未定义':
$proj_schema = json_decode($proj_schema);
var_dump($proj_schema->UserId);
$avail_users = (array)$proj_schema->UserId;
var_dump($avail_users);
var_dump($avail_users[64469]);
输出如下:
C:wampwwwj34administratorcomponentscom_mycomponentviewsmyviewview.html.php:113:
object(stdClass)[309]
public '50423' => string 'Name1' (length=14)
public '54379' => string 'Name2' (length=18)
public '67103' => string 'Name3' (length=12)
public '64469' => string 'Name4' (length=15)
public '46699' => string 'Name5' (length=11)
public '46873' => string 'Name6' (length=12)
C:wampwwwj34administratorcomponentscom_mycomponentviewsmyviewview.html.php:115:
array (size=6)
'50423' => string 'Name1' (length=14)
'54379' => string 'Name2' (length=18)
'67103' => string 'Name3' (length=12)
'64469' => string 'Name4' (length=15)
'46699' => string 'Name5' (length=11)
'46873' => string 'Name6' (length=12)
Notice: Undefined offset: 64469 in C:wampwwwj34administratorcomponentscom_mycomponentviewsmyviewview.html.php on line 116
如果我使用foreach遍历数组并基于'if($ key == 64469)写出元素,它将回显该名称,但是我无法通过数组键访问该名称。
结果与PHP 5.6.32(我知道)和PHP 7.1.0相同。如果将ID放在“”或“ ;; >>中,结果是相同的
我在演员表上缺少什么?
我无法找出以下代码为什么不起作用。我有一个来自远程服务器的JSON答案,其中包含以下数据:....,“ UserId”:{“ 50423”:“ Free Kkludkjta”,“ 54379”:“ ...
答案
您正在使用JSON作为对象而不是数组。因此,键不存在,因为它是一个属性。以上是关于为什么数组索引未定义为未定义?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Firebug 不为未定义的属性显示“未捕获的类型错误”?