Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新现有文件中的一些json项_Php_Arrays_Json_Multidimensional Array - Fatal编程技术网

Php 更新现有文件中的一些json项

Php 更新现有文件中的一些json项,php,arrays,json,multidimensional-array,Php,Arrays,Json,Multidimensional Array,我试图用一个简单的脚本来处理一些json,所以我解码json文件,创建一个foreach,让一些ifs通过live games查找信息,live.json文件: { Match: [ { Id: "348324", Date: "2015-07-19T21:30:00+00:00", League: "Brasileirao", Round: "14", HomeTeam: "Joinville", HomeTeam_Id: "1208", HomeGoals: "1", AwayTeam: "

我试图用一个简单的脚本来处理一些json,所以我解码json文件,创建一个foreach,让一些ifs通过live games查找信息,live.json文件:

{
Match: [
{
Id: "348324",
Date: "2015-07-19T21:30:00+00:00",
League: "Brasileirao",
Round: "14",
HomeTeam: "Joinville",
HomeTeam_Id: "1208",
HomeGoals: "1",
AwayTeam: "Ponte Preta",
AwayTeam_Id: "745",
AwayGoals: "1",
Time: "67",
Location: "Arena Joinville",
HomeTeamYellowCardDetails: { },
AwayTeamYellowCardDetails: { },
HomeTeamRedCardDetails: { },
AwayTeamRedCardDetails: { }
},
{
Id: "348319",
Date: "2015-07-19T21:30:00+00:00",
League: "Brasileirao",
Round: "14",
HomeTeam: "Cruzeiro",
HomeTeam_Id: "749",
HomeGoals: "1",
AwayTeam: "Avai FC",
AwayTeam_Id: "1203",
AwayGoals: "1",
Time: "Finished",
Location: "Mineirão",
HomeTeamYellowCardDetails: { },
AwayTeamYellowCardDetails: { },
HomeTeamRedCardDetails: { },
AwayTeamRedCardDetails: { }
}
检查代码中的注释,我在每个部分中指定我想要的内容

      <?php

    $json_url = "http://domain.com/live.json"; // the file comes with live games 
        $json = file_get_contents($json_url);
        $links = json_decode($json, TRUE);

    foreach($links["Match"] as $key=>$val) {
        if($val['Id'] == "live games id") // i want to live.json games ids match with the games with the same id in file.json


            // i only want to update the items below, and 
            {
            $links["Match"][$key]['Time'] = ['Time']; // in the end i just want to get the item Time to update file.json in item time for the game with the same id
            $links["Match"][$key]['HomeGoals'] = ['HomeGoals']; // similar to what i want with Time
            $links["Match"][$key]['AwayGoals'] = ['AwayGoals'];
            }
    }



$fp = fopen( "file.json","w+"); // this file have the list of all games including the ones that came from live.json, the structure are exactly the same.
    fwrite($fp,json_encode($links));
    fclose($fp);


?>
有人能帮忙吗?
最好的方法是什么?

您已经解码了json,所以它只是一个php数组,就像其他数组一样。访问该数组中的数据与访问任何其他数组完全相同。它最初是json这一事实与此无关。您已经解码了json,所以它只是一个php数组,就像其他数组一样。访问该数组中的数据与访问任何其他数组完全相同。它最初是json的事实与此无关。
{
Match: [
{
Id: "348324",
Date: "2015-07-19T21:30:00+00:00",
League: "Brasileirao",
Round: "14",
HomeTeam: "Joinville",
HomeTeam_Id: "1208",
HomeGoals: "1",
AwayTeam: "Ponte Preta",
AwayTeam_Id: "745",
AwayGoals: "1",
Time: "69",
Location: "Arena Joinville",
HomeTeamYellowCardDetails: { },
AwayTeamYellowCardDetails: { },
HomeTeamRedCardDetails: { },
AwayTeamRedCardDetails: { }
},
{
Id: "348319",
Date: "2015-07-19T21:30:00+00:00",
League: "Brasileirao",
Round: "14",
HomeTeam: "Cruzeiro",
HomeTeam_Id: "749",
HomeGoals: "1",
AwayTeam: "Avai FC",
AwayTeam_Id: "1203",
AwayGoals: "1",
Time: "Finished",
Location: "Mineirão",
HomeTeamYellowCardDetails: { },
AwayTeamYellowCardDetails: { },
HomeTeamRedCardDetails: { },
AwayTeamRedCardDetails: { }
}