enigmaticus
enigmaticus

Reputation: 548

json decode with an array in php

I am having a problem with getting data from json. I cant change the way it is saved in the database since it is generated by the framework and after that read for the fields generation. My json looks like this:

{"102":{"textinput":{"comment":"2"}},"104":"34"}

 OR

{"78":{"textinput":{"comment":"1"}},"82":"34"}

Comment value is my serialnumber that I net to get from this json. I tried with :

$json_sn = json_decode($customer_json_sn, true);
$snr = $json_sn['78']['textinput']['comment'];

But this is not the solution I need, since I never know the value of first numeric key, I cant rely on that. Any help would be appreciated.

Upvotes: 0

Views: 66

Answers (3)

eltortuganegra
eltortuganegra

Reputation: 189

You can do:

<?php

$json = '{"78":{"textinput":{"comment":"1"}},"82":"34"}';

var_dump(json_decode($json, true));

$data = json_decode($json, true);

foreach( $data as $key => $value ) {

    # Check if exsit
    if (isset($value['textinput']['comment'])) {
        echo "Value: " . $value['textinput']['comment'];
    }
}

Upvotes: 0

hansn
hansn

Reputation: 2024

How about:

$snr_array = array()
foreach ($json_sn as $key)
    snr_array[] = $key['textinput']['comment'];

Edit: I just realized that you might just need/get one comment:

$key = key($json_sn);
$snr = $json_sn[$key]['textinput']['comment'];

Upvotes: 1

user1978142
user1978142

Reputation: 7948

If this format is going to be always the same, you can use reset() function on this one. Consider this example:

$json_sn = json_decode($customer_json_sn, true);
$snr = reset($json_sn);
echo $snr['textinput']['comment'];

Upvotes: 2

Related Questions