I have a Json Script with an Array inside and Array which looks like this shortened:
Array
(
    [assets] => Array
        (
            [CGGD.AS] => Array
                (
                    [shortName] => iShares Global Govt Bond Climat
                    [sector] => 
                    [industry] => 
                    [country] => 
                    [longBusinessSummary] => 
                    [currency] => USD
                    [marketCap] => 
                    [logo_url] => 
                    [Anlageklasse] => Anleihen
                    [Anmerkungen] => Staatsanleihen Welt
                    [Nachhaltigkeit] => 1
                    [Ist_Alternative] => 1
                    [weights] => 0.86563025602977
                )
            [SUOE.MI] => Array
                (
                    [shortName] => ISHARES EUR CORP BOND SRI UCITS
                    [sector] => 
                    [industry] => 
                    [country] => 
                    [longBusinessSummary] => 
                    [currency] => EUR
                    [marketCap] => 
                    [logo_url] => 
                    [Anlageklasse] => Anleihen
                    [Anmerkungen] => Unternehmensnaleihen EUR
                    [Nachhaltigkeit] => 1
                    [Ist_Alternative] => 1
                    [weights] => -0.47997445382071
                )
        )
    [risk] => 0.05323390949106
    [return] => 1.1125842376311
)
Now I want to work with the single variables shortName, industry, etc. When I tried to call the function with
print_r($json_data['assets']['CGGD.AS']['shortName']);
it worked perfectly fine. When I use
print_r($_POST['assets'][0][0]);
it is not working at all and gives me the following warning:
Warning: Undefined array key “assets” in C:xampphtdocstestergebnisdarstellung.php on line 52
Warning: Trying to access array offset on value of type null in C:xampphtdocstestergebnisdarstellung.php on line 52
The problem I have is that I will not know what name will be in the second brackets like CGGD.AS and because of this I can not use the working function. I will not now how long the array is either and numbers are not working. Because of this I do not know how to call the single variabless without using the name. How can I call the function?
Advertisement
Answer
To get all shortName you can loop your array:
foreach ($json_data['assets'] as $key => $data) {
    print_r($data['shortName']);
}
If you want just shortName of first element, then use current:
$item = current($json_data['assets']); print_r($item['shortName']);