首页 > 解决方案 > 具有动态键的嵌套数组

问题描述

我有动态文件,每次上传文件时,它的名称取决于文件名,所以 jsonobj 是示例,

每次文件更改时如何回显 $obj["FILENAME"]?我需要一个动态代码

我尝试 make echo $obj[0]["url"]; 但它不会工作,

$jsonobj = '{"File.png":{"name":"File.png","url":"www.example.com/File.png"}}';
$obj = (json_decode($jsonobj,true));
echo $obj["File.png"]["url"];

标签: phparraysmultidimensional-array

解决方案


当您的文件名更改时,第一个键会更改。

因此,首先检索该密钥 ( File.png),然后您可以使用它来输出内容:

reset($obj);       // set pointer to first key
$key = key($obj);  // get first key (File.png)

$url = $obj[ $key ][ 'url' ];

但是关于这是多么不切实际的评论,仍然是有道理的。

注意 从 PHP 7.3.0 开始,您可以array_key_first()使用reset(); key()


推荐阅读