fork download
  1. <?php
  2.  
  3. $jsonData = file_get_contents('php://stdin');
  4. $jsonData = json_decode($jsonData, true);
  5.  
  6. $SeriesByName = [];
  7. $CategoryDates = [];
  8.  
  9. foreach ($jsonData as $row) {
  10. $name = $row['nombre'];
  11. $date = $row['fecha'];
  12. $SeriesByName[$name][$date] = $row['cantidad'];
  13. $CategoryDates[$date] = true;
  14. }
  15.  
  16. $Category = array_keys($CategoryDates);
  17. $dateIndexes = array_flip($Category);
  18.  
  19. $Serie = [];
  20. foreach ($SeriesByName as $name => $data) {
  21. $SeriesData = array_fill(0, count($Category), "0");
  22. foreach ($data as $date => $quantity) {
  23. $SeriesData[$dateIndexes[$date]] = $quantity;
  24. }
  25. $Serie[] = ['name' => $name, 'data' => $SeriesData];
  26. }
  27.  
  28. 'Serie' => $Serie,
  29. 'Category' => $Category,
  30. ], JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
  31.  
Success #stdin #stdout 0.03s 26036KB
stdin
[
  {
    "nombre": "Usuario_1",
    "fecha": "2025-01-01",
    "cantidad": "25"
  },
  {
    "nombre": "Usuario_1",
    "fecha": "2025-01-03",
    "cantidad": "19"
  },
  {
    "nombre": "Usuario_2",
    "fecha": "2025-01-03",
    "cantidad": "22"
  },
  {
    "nombre": "Usuario_1",
    "fecha": "2025-01-05",
    "cantidad": "15"
  },
  {
    "nombre": "Usuario_2",
    "fecha": "2025-01-05",
    "cantidad": "31"
  }
]
stdout
{
    "Serie": [
        {
            "name": "Usuario_1",
            "data": [
                "25",
                "19",
                "15"
            ]
        },
        {
            "name": "Usuario_2",
            "data": [
                "0",
                "22",
                "31"
            ]
        }
    ],
    "Category": [
        "2025-01-01",
        "2025-01-03",
        "2025-01-05"
    ]
}