【问题标题】:How do I echo Nested Array Element?如何回显嵌套数组元素?
【发布时间】:2020-02-19 03:02:56
【问题描述】:

我不知道我做错了什么,我无法让我的数组项回显。我不断收到此错误:

非法字符串偏移'CreatedDatetime'。

我的 XML 通过 JSON print_r 看起来像这样:

Array
(
[ABOUT_VERSIONS] => Array
    (
        [ABOUT_VERSION] => Array
            (
                [CreatedDatetime] => 2019-10-22T22:29:47.7617229Z
                [DataVersionIdentifier] => 201703
            )

    )
)

我的代码是:

foreach ($newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"] as $item){
   echo $item["CreatedDatetime"]."<br>";
}

这看起来很简单,但我有一个障碍。我无法回显CreatedDatetime 键。

【问题讨论】:

  • 能分享一下$newArr是怎么设置的吗?还有你在说什么 XML?
  • 你能发布 var_dump($newArr) 的输出吗?
  • $newArr 是我转换为 json 的 xml 文件。该文件有 5000 多行代码,所以我只是缩短了它。

标签: php json loops multidimensional-array nested


【解决方案1】:

$item 不是数组,它会遍历$newArr['ABOUT_VERSION'] 中的两个值,即2019-10-22T22:29:47.7617229Z201703。要显示CreatedDatetime,可以直接访问它:

echo $newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"]["CreatedDatetime"] . "<br>";

或者在循环中做一个key比较:

foreach ($newArr["ABOUT_VERSIONS"]["ABOUT_VERSION"] as $key => $value){
   if ($key == "CreatedDatetime") echo $value . "<br>";
}

在这两种情况下,输出都是2019-10-22T22:29:47.7617229Z

Demo on 3v4l.org

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 2020-11-09
    • 2019-05-12
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    相关资源
    最近更新 更多