首页 > 解决方案 > 如何访问具有动态更改键值的嵌套 JSON 对象

问题描述

我正在尝试将 JSON 数据放入我的 PHP 脚本中,问题是这是一个嵌套的 JSON 对象,具有动态更改的键值(我已将 JSON 对象转换为 PHP 对象):

stdClass Object
(
    [665261] => stdClass Object
        (
            [id] => 665261
            [SpeiseplanName] => Campus Mensa Wismar
            [Datum] => 2019-07-12
            [KstNr] => 462
            [ArtikelText] => ein Brathering ohne Mittelgräte
            [ZusatzStoffe] => 9 Fi Gl
            [ZusatzStoffeText] => mit Süßungsmittel, Fische, Gluten
            [PeStud] => 0.75
            [PeBed] => 1.35
            [PeGast] => 1.75
            [sortierung] => 46
        )

    [665262] => stdClass Object
        (
            [id] => 665262
            [SpeiseplanName] => Campus Mensa Wismar
            [Datum] => 2019-07-12
            [KstNr] => 462
            [ArtikelText] => zwei Bratheringe ohne Mittelgräte
            [ZusatzStoffe] => 9 Fi Gl
            [ZusatzStoffeText] => mit Süßungsmittel, Fische, Gluten
            [PeStud] => 1.25
            [PeBed] => 1.9
            [PeGast] => 2.25
            [sortierung] => 47
        )

    [665263] and so on.

所以,我已经得到了这样的数据:

<p id="desc"><?= htmlReady(_($data[665261]['ArtikelText'])) ?></p>

正如预期的那样,输出结果是“zwei Bratheringe ohne Mittelgräte”。但是这个数字键 665261 是动态的,每天都在变化。

那么如何使用这样的键值访问日期呢?谢谢您的帮助。

标签: phpjsonnested-object

解决方案


您只需要使用foreachloop,如下所示:

假设您的对象名称对象是$objects

foreach ($objects as $obj) {
    echo '<p id="desc">' . htmlReady(_($obj->ArtikelText)) . '</p>';
}

或者,如果您有一个数组数组,其名称为$arrays

foreach ($arrays as $arr) {
    echo '<p id="desc">' . htmlReady(_($arr['ArtikelText'])) . '</p>';
}

推荐阅读