Php 从JSON数组中提取特定值
我有一个JSON数组Php 从JSON数组中提取特定值,php,arrays,json,Php,Arrays,Json,我有一个JSON数组 [0] => Array ( [stage_id] => 80 [yieldVal] => Array ( [0] => Array ( [datajson] => [{"name":"doi","value":"215"},{"name":
[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]
)
您应该能够通过以下方式获得值:
$doi_value = $phpArray[0]['value'];
然后,您可以对它们求和,将它们推到结果数组中,或者其他任何东西。一件可能会让您绊倒的事情是,您的
datajson
字符串是:
`[{"name":"doi","value":"215"},{"name":"dateofpollinationstops","value":"Date of Pollination Stops~23-3-2015"}]`
方括号表示json\u 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>";
$yieldVal=0;
foreach($res['yieldVal']作为$key=>$arr){
$decode=json_decode($arr['datajson']);
$yieldVal=$yieldVal+$decode[0]->值;
}
$newArray=array(
“stage\u id”=>$res[“stage\u id”],
“yieldVal”=>$yieldVal
);
//变量转储($newArray);
echo“.print\u r($newArray,true)。”;
var\u dump($phpArray)的输出是什么?数组中不能有多个元素具有相同的键doi_值
。@D4V1D其显示为空。。事实上,我需要对这些值进行求和@barmar,因此您不希望在结果yieldVal
中有一个数组?请更新问题以显示您真正想要的内容。