我有一个JSON数组
[0] => Array
(
[stage_id] => 80
[yieldVal] => Array
(
[0] => Array
(
[datajson] => [{"name":"doi","value":"215"},{"name":"dateofpollinationstops","value":"Date of Pollination Stops~23-3-2015"}]
)
[1] => Array
(
[datajson] => [{"name":"doi","value":"698"},{"name":"dateofpollinationstops","value":"Date of Pollination Stops~23-3-2015"}]
)
)
)
我需要从这个数组中提取值
[0] => Array
(
[stage_id] => 80
[yieldVal] => Array
(
[doi_value] => 215
[doi_value] => 698
)
)
我尝试过解码JSON。但无法继续下去。
$phpArray = json_decode($res['datajson'], true);
如何提取值并指定密钥。
编辑:我的最终输出应该是
[0] => Array
(
[stage_id] => 80
[yieldVal] => 913 //215+698 -> Extracting values from [datajson]
)
答案 0 :(得分:1)
你应该能够通过以下方式获得价值:
$doi_value = $phpArray[0]['value'];
然后你可以将它们相加,将它们推送到结果数组或其他任何数据。
答案 1 :(得分:1)
可能会让你失望的一件事是你的datajson
字符串是:
`[{"name":"doi","value":"215"},{"name":"dateofpollinationstops","value":"Date of Pollination Stops~23-3-2015"}]`
方括号表示json_decode
将从对象创建一个数组。
无论如何,试试这个...应该给你你要求的确切输出:
$yieldVal = 0;
foreach ($res['yieldVal'] as $key => $arr) {
$decode = json_decode($arr['datajson']);
$yieldVal = $yieldVal + $decode[0]->value;
}
$newArray = array (
'stage_id' => $res['stage_id'],
'yieldVal' => $yieldVal
);
//var_dump($newArray);
echo "<pre>".print_r($newArray, true)."</pre>";