PHP+JSON 显示结果没有key?
PHP+JSON Display result with no key?
我有问题。
以 JSON 格式从 URL 请求数据并得到如下内容:
array(1) { ["NICK_HERE"]=> array(5) { ["id"]=> int(123456789) ["name"]=> string(11) "NICK_HERE" ["class"]=> int(538) ["level"]=> int(97) ["online"]=> int(1420061059000) } }
然后,我想从那里显示一些东西,通常它会是 $x['NICK_HERE']['id']
,但是因为 NICK_HERE
会改变,而且因为我不能在那里使用变量,所以有办法绕过这个吗?
例如像 $x[0]['id']
这样的东西?
不管是什么,先选择吧?
感谢您的帮助!
P.s 新年快乐!
使用 foreach 循环。
假设您的数组名称是 $array。
foreach($array as $i=>$a)
{
echo "index: ".$i." id:".$a['id']."<br>";
}
假设您的 json 字符串名称是 $json
。那就这样用
$array=$json_decode($json);
foreach($array as $i=>$a)
{
echo "index: ".$i." id:".$a->id."<br>";//here you will get it as object
}
希望你明白了。
因为您知道第一个数组有一个键名,所以您可以获得第 0 个键。
test.php
$x = array(
"NICK_HERE" => array(
"id" => 123456789,
"name" => "NICK_HERE",
"class" => 538,
"level" => 97,
"online" => 1420061059000
)
);
$name = array_keys($x)[0];
echo $x[$name]["id"];
?>
输出:
php test.php
123456789%
我的建议(因为我觉得最简单的就是用current()
,不过你也可以用array_column()
...
代码:(Demo)
$array=[
"NICK_HERE"=>["id"=>123456789,"name"=>"NICK_HERE","class"=>538,"level"=>97,"online"=>1420061059000]
];
echo current($array)['id'];
echo "\n";
echo array_column($array,'id')[0];
输出:
123456789
123456789
这些方法假定子数组元素id
保证存在。如果不是,您需要在尝试访问之前与 isset()
核实——以避免出现通知。
我有问题。 以 JSON 格式从 URL 请求数据并得到如下内容:
array(1) { ["NICK_HERE"]=> array(5) { ["id"]=> int(123456789) ["name"]=> string(11) "NICK_HERE" ["class"]=> int(538) ["level"]=> int(97) ["online"]=> int(1420061059000) } }
然后,我想从那里显示一些东西,通常它会是 $x['NICK_HERE']['id']
,但是因为 NICK_HERE
会改变,而且因为我不能在那里使用变量,所以有办法绕过这个吗?
例如像 $x[0]['id']
这样的东西?
不管是什么,先选择吧?
感谢您的帮助!
P.s 新年快乐!
使用 foreach 循环。
假设您的数组名称是 $array。
foreach($array as $i=>$a)
{
echo "index: ".$i." id:".$a['id']."<br>";
}
假设您的 json 字符串名称是 $json
。那就这样用
$array=$json_decode($json);
foreach($array as $i=>$a)
{
echo "index: ".$i." id:".$a->id."<br>";//here you will get it as object
}
希望你明白了。
因为您知道第一个数组有一个键名,所以您可以获得第 0 个键。
test.php
$x = array(
"NICK_HERE" => array(
"id" => 123456789,
"name" => "NICK_HERE",
"class" => 538,
"level" => 97,
"online" => 1420061059000
)
);
$name = array_keys($x)[0];
echo $x[$name]["id"];
?>
输出:
php test.php
123456789%
我的建议(因为我觉得最简单的就是用current()
,不过你也可以用array_column()
...
代码:(Demo)
$array=[
"NICK_HERE"=>["id"=>123456789,"name"=>"NICK_HERE","class"=>538,"level"=>97,"online"=>1420061059000]
];
echo current($array)['id'];
echo "\n";
echo array_column($array,'id')[0];
输出:
123456789
123456789
这些方法假定子数组元素id
保证存在。如果不是,您需要在尝试访问之前与 isset()
核实——以避免出现通知。