Json string bepaalde dingen samen tellen.

    • Json string bepaalde dingen samen tellen.

      Hallo,

      Ik ben zoeken voor vanuit mijn JSON bepaalde waardes samen te tellen en te groeperen. Zie voorbeeld hieronder.

      Ik zou het volgende moeten hebben
      Code: 8191 => 5 <- totaal al de JSON bestande.
      Code milieu => 10 <- totaal al de JSON bestande.
      en zo verder...

      Ik zelf heb zitten denken aan foreach maar kom er niet aan uit. Alle hulp tips zijn welkom.

      Source Code

      1. Array
      2. (
      3. [code] => Array
      4. (
      5. [0] => 8191
      6. [1] => milieu
      7. )
      8. [naam] => Array
      9. (
      10. [0] => Arcal 1 PG - 4,3 m³
      11. [1] => Bijdrage veiligheid en milieu
      12. )
      13. [opmerking] => Array
      14. (
      15. [0] =>
      16. [1] => Afgehaald op 28-04-2015
      17. )
      18. [vol] => Array
      19. (
      20. [0] => 3
      21. [1] => 3
      22. )
      23. [leeg] => Array
      24. (
      25. [0] => 3
      26. [1] => 0
      27. )
      28. [inhoud] => Array
      29. (
      30. [0] => 4.3
      31. [1] => 1
      32. )
      33. [eenheid] => Array
      34. (
      35. [0] => 9.55
      36. [1] => 7.42
      37. )
      38. [totaal] => Array
      39. (
      40. [0] => 123.20
      41. [1] => 22.26
      42. )
      43. )
      44. Array
      45. (
      46. [code] => Array
      47. (
      48. [0] => 8191
      49. [1] => milieu
      50. )
      51. [naam] => Array
      52. (
      53. [0] => Arcal 1 PG - 4,3 m³
      54. [1] => Bijdrage veiligheid en milieu
      55. )
      56. [opmerking] => Array
      57. (
      58. [0] =>
      59. [1] => Afgehaald op 02-06-2015
      60. )
      61. [vol] => Array
      62. (
      63. [0] => 2
      64. [1] => 2
      65. )
      66. [leeg] => Array
      67. (
      68. [0] => 2
      69. [1] => 0
      70. )
      71. [inhoud] => Array
      72. (
      73. [0] => 4.3
      74. [1] => 1
      75. )
      76. [eenheid] => Array
      77. (
      78. [0] => 9.55
      79. [1] => 7.42
      80. )
      81. [totaal] => Array
      82. (
      83. [0] => 82.13
      84. [1] => 14.84
      85. )
      86. )
      Laat alles zien
      GunMaffia.com
    • Je wilt dus op grond van een key / waarde in een (genest) array een nieuw array bouwen waarbij je groepeert op deze key / waarde?

      Dit lijkt mij niet zo lastig, maar hoe zou dat nieuwe gecombineerde array er dan uit moeten zien?

      Je hebt het trouwens over samentellen en groeperen, maar als je je nieuwe array (of dataset) nu eens handig in elkaar steekt dan kun je de informatie ook rechtstreeks berekenen aan de hand van die nieuwe structuur. In dat geval kun je ook nog herleiden hoe die optelsommen totstand komen want die zijn puur programmatisch en niet ingebakken in het array (hiermee is je dataset ook dus nog breder inzetbaar/herbruikbaar voor andere doelen). Als je alles op voorhand bij elkaar mikt dan kun je dit niet meer afleiden wat mij niet echt handig lijkt.
    • @FangorN bedankt om mee te denken ben er reeds al op uitgekomen.Dit is de code die ik nu gebruik waarschijnlijk kan het korter maar deze versie werkt ook. :)

      Source Code

      1. $testarray = [];
      2. foreach($test as $val)
      3. {
      4. $producten = json_decode($val['fData'], true);
      5. foreach($producten['data']['factuur']['code'] as $key => $value)
      6. {
      7. if(!empty($producten['data']['factuur']['code'][$key]) && !empty($producten['data']['factuur']['naam'][$key])
      8. && $producten['data']['factuur']['code'][$key] != 'TEKST' && $producten['data']['factuur']['code'][$key] != 'tekst'
      9. && $producten['data']['factuur']['code'][$key] != 'bbq')
      10. {
      11. $testarray[] = array(
      12. 'code' => $producten['data']['factuur']['code'][$key],
      13. 'naam' => $producten['data']['factuur']['naam'][$key],
      14. 'aantal' => $producten['data']['factuur']['vol'][$key],
      15. 'totaalPrijs' => $producten['data']['factuur']['totaal'][$key]
      16. );
      17. }
      18. }
      19. }
      20. $maak = [];
      21. $prijsTotaal = [];
      22. $totaalFlessen = [];
      23. $NaamFlessen = [];
      24. foreach ($testarray as $row)
      25. {
      26. $totaalFlessen[$row['code']] = isset($totaalFlessen[$row['code']]) ? $totaalFlessen[$row['code']] : 0;
      27. $prijsTotaal[$row['code']] = isset($prijsTotaal[$row['code']]) ? $prijsTotaal[$row['code']] : 0;
      28. $maak[$row['code']][$row['code']] = $row;
      29. $NaamFlessen[$row['code']] = $row['naam'];
      30. $totaalFlessen[$row['code']] += $row['aantal'];
      31. $prijsTotaal[$row['code']] += $row['totaalPrijs'];
      32. }
      Laat alles zien
      GunMaffia.com