I'm trying to get JSON data into my PHP script and the problem is that this is a nested JSON object with dynamically changed key value (I've converted JSON objects into PHP objects):
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.
So, I've already get the data like this:
<p id="desc"><?= htmlReady(_($data[665261]['ArtikelText'])) ?></p>
The output was then "zwei Bratheringe ohne Mittelgräte" as expected. But this numeric key 665261 is dynamic and changed every day.
So how can I access date with key's values like this? Thank you for your help.
You just need to use foreach
loop, like this:
Suppose your object of objects name is $objects
:
foreach ($objects as $obj) {
echo '<p id="desc">' . htmlReady(_($obj->ArtikelText)) . '</p>';
}
Or if you have a array of arrays, with the name of $arrays
:
foreach ($arrays as $arr) {
echo '<p id="desc">' . htmlReady(_($arr['ArtikelText'])) . '</p>';
}
First of all you need to check if the Key exists in your array. If it exists then you need to fetch the object corresponding to that key. Afterwards you can print any variable you need in the object.
Let us say that your main object is $objects and the key you are looking for is $key. You can use following code then.
if( isset( $objects->$key ) ) {
$innerObject = $objects->$key;
echo $innerObject->ArtikelText; //prints ein Brathering ohne Mittelgräte
echo $innerObject->PeStud; // prints 0.75
}