Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json - Fatal编程技术网

Php 如何更新JSON元素

Php 如何更新JSON元素,php,json,Php,Json,我在Joomla有一个来自CCK的JSON文件。我需要更新文件中包含的评级元素,因为该网站将从使用5星级评级变为10星级评级。这意味着所有评级必须乘以2 我可以通过以下方式做到这一点: <?php $file = "file.txt"; $json = json_decode(file_get_contents($file)); $i = 1; foreach($json->items as $element){ foreach($element->element

我在Joomla有一个来自CCK的JSON文件。我需要更新文件中包含的评级元素,因为该网站将从使用5星级评级变为10星级评级。这意味着所有评级必须乘以2

我可以通过以下方式做到这一点:

<?php

$file = "file.txt";
$json = json_decode(file_get_contents($file));

$i = 1;
foreach($json->items as $element){

    foreach($element->elements as $item) {
        if ($item->type == "rating") {

            // Now I have the values of votes and can multiply with 2
            $newRating = number_format($item->data->value * 2 , 4);

            // Now what?
            // How do I get that value back in the json file, in the correct place?

        }

    }

}

?>

如何在json文件中的正确位置获取该值

文件中的完整项:

"items":  {
    "bergans-rondane-lady-65-liter":  {
        "searchable": "1",
        "state": "1",
        "created": "2012-01-19 10:15:25",
        "modified": "2012-01-19 10:23:27",
        "hits": "1312",
        "access": "1",
        "priority": "0",
        "publish_up": "2012-01-19 10:15:25",
        "publish_down": "0000-00-00 00:00:00",
        "author": "Rasmus Bech",
        "tags":  {
            "0": "Bergans"
        },
        "content": null,
        "metadata":  {
            "description": "",
            "keywords": "",
            "robots": "",
            "author": ""
        },
        "config":  {
            "page_title": "",
            "enable_comments": "1",
            "primary_category": "rygsaekke-og-tasker-2"
        },
        "categories":  {
            "0": "rygsaekke-og-tasker-2"
        },
        "elements":  {
            "11cafcc4-0015-48d5-9da0-5c732e33f212":  {
                "type": "text",
                "name": "M\u00e6rke",
                "data":  {
                    "0":  {
                        "value": ""
                    }
                }
            },
            "b13f8b6a-6dc2-4af9-b297-0839f4aa7c5a":  {
                "type": "text",
                "name": "Model",
                "data":  {
                    "0":  {
                        "value": ""
                    }
                }
            },
            "d3b5ddeb-6122-430b-99e9-f9f068ba7f8e":  {
                "type": "image",
                "name": "Teaserbillede",
                "data":  {
                    "file": "images\/anmeldelser\/bergans_rondane.jpg",
                    "title": "",
                    "link": "",
                    "target": "",
                    "rel": "",
                    "lightbox_image": "",
                    "width": "600",
                    "height": "979"
                }
            },
            "c489f3ed-22ec-44a2-8fa3-597f7065f66e":  {
                "type": "image",
                "name": "Flere billeder 1",
                "data":  {
                    "file": "",
                    "title": "",
                    "link": "",
                    "target": "",
                    "rel": "",
                    "lightbox_image": ""
                }
            },
            "a4df94fe-ba21-4932-947c-1860fda062d3":  {
                "type": "image",
                "name": "Flere billeder 2",
                "data":  {
                    "file": "",
                    "title": "",
                    "link": "",
                    "target": "",
                    "rel": "",
                    "lightbox_image": ""
                }
            },
            "f7bd3bdb-7832-423a-a441-a09e456509fd":  {
                "type": "image",
                "name": "Flere billeder 3",
                "data":  {
                    "file": "",
                    "title": "",
                    "link": "",
                    "target": "",
                    "rel": "",
                    "lightbox_image": ""
                }
            },
            "9bac915e-3edd-4761-9fae-48f11b28a6f7":  {
                "type": "image",
                "name": "Flere billeder 4",
                "data":  {
                    "file": "",
                    "title": "",
                    "link": "",
                    "target": "",
                    "rel": "",
                    "lightbox_image": ""
                }
            },
            "e4431ff2-8237-4b6e-9c7c-a091ef3e5e6b":  {
                "type": "textarea",
                "name": "Anmeldelse",
                "data":  {
                    "0":  {
                        "value": "<p>Testen er et battle mellem Bergans Rondane Lady 65 vs. Lowe TFX Annapurna ND 65:80<\/p>\n<p><em>Den samme test ligger under&nbsp;Lowe TFX Annapurna ND 65:80, hvor du kan se kommentarer og karakterne som er givet til Lowe rygs\u00e6kken.<\/em><\/p>\n<p>For de fleste aktive kvinder er en rygs\u00e6k p\u00e5 60 liter en fast, og vigtig, del af udstyrsarsenalet, og hvad enten den bruges p\u00e5 fjeldturen eller til rygs\u00e6ksrejsen, skal den sidde perfekt og have en indretning, der ikke giver gr\u00e5 h\u00e5r i hovedet. Vi har testet to af markedets mest popul\u00e6re modeller, der overraskende nok viste sig at byde p\u00e5 markante forskelle i b\u00e6rekomfort og betjening.<\/p>\n<p>Selv om rygs\u00e6kke udvikler sig med lige s\u00e5 stor hast som alt andet udstyr, er det de f\u00e6rreste af os, der skifter rygs\u00e6kken ud oftere end hver tiende \u00e5r. S\u00e5 er det ved at v\u00e6re l\u00e6nge siden du investerede i din trofaste slider, vil du sandsynligvis blive overrasket over, hvor meget der faktisk er sket p\u00e5 udviklingen af rygs\u00e6kke.<\/p>\n<p>I forbindelse med vores test har vi kigget n\u00e6rmere p\u00e5 to popul\u00e6re modeller, nemlig Bergans Rondane Lady 65 og Lowes TFX Annapurna ND65:80, der begge er allround-rygs\u00e6kke i den nogenlunde fornuftige ende af prisskalaen, hvilket for os vil sige 1500-2000 kroner.<br \/>Vi har gennem en cirka fire m\u00e5neder lang testperiode haft rygs\u00e6kkene med to kvinder p\u00e5 ture, der mest har budt p\u00e5 vandring med 15-20 kilos belastning, men s\u00e6kkene har ogs\u00e5 v\u00e6ret en tur i kanoen og v\u00e6ret brugt som decideret rejserygs\u00e6kke.<\/p>\n<p>Vores test viser f\u00f8rst og fremmest, at man faktisk f\u00e5r meget kvalitet for pengene, n\u00e5r man handler rygs\u00e6k i den ovenn\u00e6vnte prisklasse. Kvinde-detajlerne er ogs\u00e5 i orden p\u00e5 begge rygs\u00e6kke, hvilket vil sige at b\u00e6resystemer sidder som de skal, mens hofteb\u00e6lter er korrekt vinklede til kvinders hofter. Andre detaljer, som flot design og god plads til langt h\u00e5r, er der ogs\u00e5 t\u00e6nkt p\u00e5, men vigtigst af alt blev vi bekr\u00e6ftet i, at rygs\u00e6kke sidder vidt forskelligt, og at det ofte kommer an p\u00e5 smag og behag, samt den enkelte rygs anatomi, n\u00e5r det g\u00e6lder det vigtige valg af rygs\u00e6k.<\/p>\n<p>For eksempel viste Bergans-s\u00e6kken sig at sidde virkelig stabilt p\u00e5 ryg og hofter, mens Lowen havde et kontant og mere dynamisk b\u00e6resystem, der tiltalte folk med god balance og hang til h\u00e5rd polstring. Overordnet kan man sige, at Bergans, med sit afstivede og bl\u00f8de b\u00e6resystem, umiddelbart er den, der vil passe p\u00e5 flest forskellige kvinderygge, mens Lowe deler vandene, og kan overraske positivt s\u00e5vel som negativt. Derudover har Bergans den bedst gennemt\u00e6nkte indretning og dermed letteste adgang til indholdet, mens Lowe uden tvivl er den mest solide og materialem\u00e6ssigt gennemf\u00f8rte af de to.<\/p>"
                    }
                }
            },
            "8acbd5df-6584-40e7-84e0-d918373fe7dc":  {
                "type": "textarea",
                "name": "Design",
                "data":  {
                    "0":  {
                        "value": "<p>B\u00e6rekomfort: **** <br \/>Bergans Rondane Lady 65l byder p\u00e5 et klassisk, bl\u00f8dt og velpolstret b\u00e6resystem. Den giver en fornemmelse, der tiltalte samtlige testere, der ogs\u00e5 vendte tommelfingrene opad for et s\u00e6t virkelig velsk\u00e5rne b\u00e6reremme, der sidder som malet p\u00e5 kvinders overkrop og ikke kommer i vejen for armenes bev\u00e6gelser. S\u00e5 l\u00e6nge v\u00e6gten ikke kommer over 20 kilo, f\u00f8lger hofteb\u00e6ltet ogs\u00e5 godt med uden at klappe sammen.<\/p>\n<p><br \/>Indretning:****(*)<br \/>Hoved-featuren i Bergans-rygs\u00e6kken er en k\u00e6mpestor hesteskoformet \u00e5bning, der giver adgang til s\u00e6kkens hovedrum fra fronten. Hvis man er vant til den klassiske opbygning med adgang fra top og bund, kr\u00e6ver systemet lige lidt tilv\u00e6nning, men p\u00e5 tur fungerer det generelt godt, og vi havde ikke st\u00f8rre problemer med at f\u00e5 fat i indholdet, s\u00e5 l\u00e6nge det ikke var pakket for langt ned i bunden Der er god plads i sidelommerne, og topl\u00e5get kan h\u00e6ves, hvilket er fedt n\u00e5r man skal have lidt ekstra plads. Det ses, at der er t\u00e6nkt over tingene, og faktisk savnede vi kun sm\u00e5 lommer p\u00e5 hofteb\u00e6ltet.<\/p>"
                    }
                }
            },
            "b2e7178c-f277-40be-ae5f-332290452beb":  {
                "type": "textarea",
                "name": "Brugervenlighed",
                "data":  {
                    "0":  {
                        "value": "<p>N\u00e5r det g\u00e6lder selve betjeningen og brug af Rondane Lady, har vi kun minimale sm\u00e5ting at uds\u00e6tte p\u00e5 den ellers meget gennemf\u00f8rte rygs\u00e6k, der fungerer mere eller mindre perfekt og fremkaldte tilfredse smil i testpanelet. Rygl\u00e6ngden kan justeres med et snuptag, mens remme, sp\u00e6nder og lynl\u00e5se k\u00f8rer up\u00e5klageligt og tilmed er lette at betjene med vanter p\u00e5.<\/p>"
                    }
                }
            },
            "f146d372-e22f-4f28-bcca-a902ea3306ef":  {
                "type": "textarea",
                "name": "V\u00e6rdi for pengene",
                "data":  {
                    "0":  {
                        "value": ""
                    }
                }
            },
            "cb9a09d6-4de4-4c8b-94ce-82a66f47a69f":  {
                "type": "textarea",
                "name": "Finish",
                "data":  {
                    "0":  {
                        "value": "<p>Der er brugt gode, robuste materialer til Rondane-rygs\u00e6kken, og man f\u00e5r hurtigt indtrykket af en rygs\u00e6k, der ikke kan sl\u00e5s ihjel. Det er en god metervare, der ikke r\u00e5ber alt for h\u00f8jt, og der er ikke brugt resurser p\u00e5 overdrevent luksuri\u00f8se materialer. Vi er lidt skuffede over lynl\u00e5sene, der i forhold til Lowe Annapurna, virker lidt billige og spinkle, men om kraftigere lynl\u00e5se er n\u00f8dvendige, vil kun mange \u00e5rs brug vise.<\/p>"
                    }
                }
            },
            "69b25ccd-8625-4556-a058-dcd994668d1e":  {
                "type": "textarea",
                "name": "Samlet vurdering",
                "data":  {
                    "0":  {
                        "value": "<p>Norsk fornuft n\u00e5r det er bedst \u2013 Bergans Rondane lady 65l er en velsiddende sejtr\u00e6kker med en genial indretning og virkelig nem adgang til indholdet \u2013 i et apsis er det ligefrem en forn\u00f8jelse at skulle finde grej frem. P\u00e5 ryggen sidder s\u00e6kken virkelig godt, men du skal v\u00e6re forberedt p\u00e5 en lidt statisk og fastsp\u00e6ndt fornemmelse, da b\u00e6resystemet ikke f\u00f8lger dine bev\u00e6gelser, hvis du i stejlt terr\u00e6n skal ud i kroppens yderstillinger. Dette er dog ikke noget problem under almindelige forhold. S\u00e6kken har desuden den helt store fordel, at den kan bruges til b\u00e5de fjeldtur og backpacking.<\/p>"
                    }
                }
            },
            "f951e74e-f30c-4f83-b5fd-fe8d90e03f99":  {
                "type": "rating",
                "name": "Design",
                "data":  {
                    "votes": "1",
                    "value": "4.0000"
                }
            },
            "7bb05e07-fbdd-4dee-ade9-ee2082281b52":  {
                "type": "rating",
                "name": "Brugervenlighed",
                "data":  {
                    "votes": "1",
                    "value": "5.0000"
                }
            },
            "4e522fab-0cb5-4342-84d8-518050592150":  {
                "type": "rating",
                "name": "V\u00e6rdi for pengene",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "c0c3ca0f-055d-4dec-bfe6-07c23730d6bc":  {
                "type": "rating",
                "name": "Finish",
                "data":  {
                    "votes": "1",
                    "value": "3.0000"
                }
            },
            "fb3abe5f-7493-4bc7-84b2-b8acd9e34346":  {
                "type": "rating",
                "name": "Samlet vurdering",
                "data":  {
                    "votes": "1",
                    "value": "4.0000"
                }
            },
            "70536a2f-000c-4081-8262-eafcfff8e65d":  {
                "type": "rating",
                "name": "Design (bruger)",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "6492789c-057d-40c3-9342-449c01145c27":  {
                "type": "rating",
                "name": "Brugervenlighed (bruger)",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "8256f96f-57af-411c-ba00-61899225fb56":  {
                "type": "rating",
                "name": "V\u00e6rdi for pengene (bruger)",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "f89f5edd-fafc-4025-818d-e7923eeb3aee":  {
                "type": "rating",
                "name": "Finish (bruger)",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "8a54778d-bd8b-4f4b-90bc-016e50b7d8bc":  {
                "type": "rating",
                "name": "Samlet vurdering (bruger)",
                "data":  {
                    "votes": "",
                    "value": ""
                }
            },
            "ddd92a65-ebe3-482b-890b-0ca9bd1884b4":  {
                "type": "text",
                "name": "Pris",
                "data":  {
                    "0":  {
                        "value": "1599"
                    }
                }
            },
            "8cd2f1b9-6734-4e5b-910e-1f5bf237f0d8":  {
                "type": "link",
                "name": "Link",
                "data":  {
                    "0":  {
                        "value": "http:\/\/www.spejdersport.dk",
                        "text": "",
                        "target": "",
                        "custom_title": "",
                        "rel": ""
                    }
                }
            },
            "f3abcc85-97cc-4e55-a94a-41ea497ffe02":  {
                "type": "socialbookmarks",
                "name": "Sociale netv\u00e6rk",
                "data":  {
                    "value": "1"
                }
            }
        },
        "group": "Anmeldelse af udstyr",
        "name": " Bergans Rondane Lady 65 liter"
    }
“项目”:{
“bergans-rondane-lady-65升”:{
“可搜索”:“1”,
“国家”:“1”,
“已创建”:“2012-01-19 10:15:25”,
“修改”:“2012-01-19 10:23:27”,
“命中率”:“1312”,
“访问”:“1”,
“优先级”:“0”,
“发布”:“2012-01-19 10:15:25”,
“向下发布”:“0000-00-00:00:00”,
“作者”:“Rasmus Bech”,
“标签”:{
“0”:“Bergans”
},
“内容”:空,
“元数据”:{
“说明”:“,
“关键字”:“,
“机器人”:“,
“作者”:”
},
“配置”:{
“页面标题”:“,
“启用注释”:“1”,
“主要类别”:“rygsaekke-og-tasker-2”
},
“类别”:{
“0”:“rygsaekke-og-tasker-2”
},
“要素”:{
“11cafcc4-0015-48d5-9da0-5c732e33f212”:{
“类型”:“文本”,
“名称”:“M\u00e6rke”,
“数据”:{
"0":  {
“值”:”
}
}
},
“b13f8b6a-6dc2-4af9-b297-0839f4aa7c5a”:{
“类型”:“文本”,
“名称”:“型号”,
“数据”:{
"0":  {
“值”:”
}
}
},
“d3b5ddeb-6122-430b-99e9-f9f068ba7f8e”:{
“类型”:“图像”,
“名称”:“Tristerbilede”,
“数据”:{
“文件”:“images\/anmeldelser\/bergans_rondane.jpg”,
“名称”:“名称”,
“链接”:“,
“目标”:“,
“rel”:“rel”,
“lightbox_图像”:“,
“宽度”:“600”,
“高度”:“979”
}
},
“c489f3ed-22ec-44a2-8fa3-597f7065f66e”:{
“类型”:“图像”,
“名称”:“Flere Billder 1”,
“数据”:{
“文件”:“,
“名称”:“名称”,
“链接”:“,
“目标”:“,
“rel”:“rel”,
“lightbox_图像”:”
}
},
“a4df94fe-ba21-4932-947c-1860fda062d3”:{
“类型”:“图像”,
“名称”:“Flere Billder 2”,
“数据”:{
“文件”:“,
“名称”:“名称”,
“链接”:“,
“目标”:“,
“rel”:“rel”,
“lightbox_图像”:”
}
},
“f7bd3bdb-7832-423a-a441-a09e456509fd”:{
“类型”:“图像”,
“名称”:“Flere Billder 3”,
“数据”:{
“文件”:“,
“名称”:“名称”,
“链接”:“,
“目标”:“,
“rel”:“rel”,
“lightbox_图像”:”
}
},
“9bac915e-3edd-4761-9fae-48f11b28a6f7”:{
“类型”:“图像”,
“名称”:“Flere Billder 4”,
“数据”:{
“文件”:“,
“名称”:“名称”,
“链接”:“,
“目标”:“,
“rel”:“rel”,
“lightbox_图像”:”
}
},
“e4431ff2-8237-4b6e-9c7c-a091ef3e5e6b”:{
“类型”:“文本区域”,
“名称”:“安梅尔代尔斯”,
“数据”:{
"0":  {
“价值”:"测试和战斗:65岁的Rondane Lady vs.Lowe TFX Annapurna and 65:80\n十年前,布鲁日的埃勒·莱克斯·莱克森和斯卡尔·莱德·西德·佩弗克·奥格·贝特宁曾在ikke giver gr\u00e5 h\u00e5r的家中居住过。我曾为一位最受欢迎的建模者做过Vi测试,并在比德·莱克斯·莱克斯·维克勒一家的比德·莱克斯·莱克斯·莱克斯·维克特·维克勒一家的比德·莱克斯·莱克斯·莱坎特一家的房子里对他进行了检查。\nSelv rygs\U00E6E6KKKKKKKKUDE sig med lige s\u00e5 stor有一些备选方案和预算,在rygs\u00e6kken ud结束后,在trofaste滑块、Sandsyngligvis Bliver村和faktisk Skiet p\u00e5 rygs\u00e5e的投资侧进行了详细的预算,其中包括在rygs\u00e6re l\u00e6ng中的风险管理。\ni对于BINDELSE med vores测试,请将kigget n\u00e6rmere p\u00e5交给popul\u00e6re建模师,nemlig Bergans Rondane Lady 65 og Lowes TFX Annapurna ND65:80,在rygs附近的所有地方进行测试\u00e6kke i den Nogenlenunde for Nuftige ende af Priskalaen,hvilket for os vil sige 1500-2000 kroner。在测试期间,在cirka火灾中进行测试rygs\u00e6kkene med到kvinder p\u00e5 ture,在budt p\u00e5 vandring med 15-20公斤后,男子s\u00e6kkene har ogs\u00e5 v\u00e6ret到kvinder og v\u00e6ret som REJSERYS\u00e6kke。在MEGALITET为PENGE,n\u00e5r MEGALITET MEGALITET,n\U00E6KKKKKKKRET在MEGALITET,n\U00E6RYGS\U00E6KKKK进行测试我在b\u00e6resystem的sige村的一个烤箱里。Kvinde detajlerne er ogs\u00e5我在p\u00e5 begge rygs\u00e6kke
<?php

$file = "file.txt";
$json = json_decode(file_get_contents($file));

$i = 1;
foreach($json->items as $key => $element){

    foreach($element->elements as $key2 => $item) {
        if ($item->type == "rating") {

            // Now I have the values of votes and can multiply with 2
            $newRating = number_format($item->data->value * 2, 4);

            // Now what?
            // How do I get that value back in the json file, in the correct place?
            $json->items->{$key}->elements->{$key2}->data->value = $newRating;

        }
    }
}

// back to a string
$newJson = json_encode($json);

// here you then write back to file with fopen, fwrite and fclose

?>