2013-03-05 5 views
1

Joomla에서 CCK의 JSON 파일이 있습니다. 파일에 포함 된 등급 요소를 업데이트해야합니다. 사이트는 5 등급 등급에서 10 등급 등급으로 변경됩니다.JSON 요소를 업데이트하는 방법

<?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 파일에서 그 가치를 얻을 것이다 : 즉 모든 평점은 제가이 작업을 수행 할 수 있습니다 2.

곱해야 함을 의미?

파일에서

전체 항목 : 나는 당신이 할 수 있다고 생각하지 않습니다

"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" 
    } 
+0

성취하고자하는 것이 확실하지 않습니까? – Kev

+0

등급이 4 인 경우이를 2로 곱해서 새로운 값이 8이되도록 – Dyvel

답변

3

에 도움이 될이 라이브러리없이 json 파일을 읽고 json_decode()을 사용하여 PHP 객체로 변환하십시오. 객체를 반복하고 등급을 변경 한 다음 json_encode()을 수정하고 파일에 다시 씁니다.

+0

매우 넓은 각도의 공격을 받지만 문제가있는 경우 등급 값을 얻기위한 코드입니다. .. 내가 배열에 항목을 넣어 – Dyvel

+0

, 내가 얻을 예 : [7bb05e07-fbdd-4dee-ade9-ee2082281b52] => stdClass 객체 ( [유형] => 평가 [이름] => Brugervenlighed [자료] => stdClass ) 내가 무엇을 찾고 은, 아입니다 (=> 1 는 [가치] => 5.0000 [표]을) 객체 데이터의 가치를 얻으려면 어떻게해야합니까? type = rating – Dyvel

+0

http://paste.laravel.com/jAh – Kev

0
<?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 

?> 
관련 문제