fork download
  1. <?php
  2.  
  3. // https://pt.stackoverflow.com/q/355941/5878
  4.  
  5. $gabarito = '1;1;A|2;1;B|3;1;C|4;1;A|5;1;A|6;2;D|7;2;C|8;2;B|9;2;A|10;2;A';
  6.  
  7. $materias = [];
  8.  
  9. foreach (explode('|', $gabarito) as $resposta) {
  10. list($pergunta, $materia, $alternativa) = str_getcsv($resposta, ';');
  11.  
  12. if ( ! array_key_exists($materia, $materias)) {
  13. $materias[$materia] = [];
  14. }
  15.  
  16. $materias[$materia][] = compact('pergunta', 'alternativa');
  17. }
  18.  
  19. echo json_encode($materias, JSON_PRETTY_PRINT);
Success #stdin #stdout 0s 82560KB
stdin
Standard input is empty
stdout
{
    "1": [
        {
            "pergunta": "1",
            "alternativa": "A"
        },
        {
            "pergunta": "2",
            "alternativa": "B"
        },
        {
            "pergunta": "3",
            "alternativa": "C"
        },
        {
            "pergunta": "4",
            "alternativa": "A"
        },
        {
            "pergunta": "5",
            "alternativa": "A"
        }
    ],
    "2": [
        {
            "pergunta": "6",
            "alternativa": "D"
        },
        {
            "pergunta": "7",
            "alternativa": "C"
        },
        {
            "pergunta": "8",
            "alternativa": "B"
        },
        {
            "pergunta": "9",
            "alternativa": "A"
        },
        {
            "pergunta": "10",
            "alternativa": "A"
        }
    ]
}