我遇到从json获取数据的问题。我无法更改它在数据库中保存的方式,因为它是由框架生成的,并且在读取之后生成字段。我的json看起来像这样:
{"102":{"textinput":{"comment":"2"}},"104":"34"}
OR
{"78":{"textinput":{"comment":"1"}},"82":"34"}
评论值是我从这个json获取的序列号。我尝试过:
$json_sn = json_decode($customer_json_sn, true);
$snr = $json_sn['78']['textinput']['comment'];
但这不是我需要的解决方案,因为我从来不知道第一个数字键的价值,我不能依赖它。任何帮助将不胜感激。
答案 0 :(得分:2)
如果此格式始终相同,则可以在此格式上使用reset()
功能。考虑这个例子:
$json_sn = json_decode($customer_json_sn, true);
$snr = reset($json_sn);
echo $snr['textinput']['comment'];
答案 1 :(得分:1)
怎么样:
$snr_array = array()
foreach ($json_sn as $key)
snr_array[] = $key['textinput']['comment'];
编辑:我刚刚意识到你可能只需要/得到一条评论:
$key = key($json_sn);
$snr = $json_sn[$key]['textinput']['comment'];
答案 2 :(得分:0)
你可以这样做:
<?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'];
}
}