Php 从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":

我有一个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]
    )

您应该能够通过以下方式获得值:

$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
中有一个数组?请更新问题以显示您真正想要的内容。