Buenas! Ayer me tiré toda la tarde con esto y no saqué nada en claro... Resulta que se hizo un sistema rápido de encuestas, en el cual puede haber N preguntas y cada pregunta puede tener sólo un valor (del 1 al 10).
Guardo los resultados de cada encuesta, por ejemplo, así: "1:7;2:4;4:4;" (sin las comillas). Es el id de la pregunta y el resultado; en nuestro ejemplo, viene siendo que para la respuesta 1 se contestó 7, para la 2 se contestó 4 y para la 4 se contestó 4.
Mi problema viene al interpretar los resultados, necesito pintar una tabla que sea más o menos así:
PREGUNTA 1:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -> valores del 1 al 10
| 0 | 3 | 1 | 2 | 6 | 3 | 8 | 9 | 7 | 3 | -> número de respuestas según valor
La pregunta 1, tuvo:
- 0 personas que contestaron 1
- 3 personas que contestaron 2
- 1 persona que contestó 3
... - 3 personas que contestaron 10
Probando y probando, lo máximo que he conseguido ha sido esto:
foreach ($queryAnswers as $r) {
$clearResults = explode(";",$r["answers"]);
for($i=0;$i<sizeof($clearResults)-1;$i++){
$rNum[] = $clearResults[$i];
}
}
Si hago esto
print_r(array_count_values($rNum));
el resultado es
Array ( [1:7] => 1 [2:4] => 1 [4:4] => 1 [1:9] => 1 [2:9] => 2 [4:7] => 1 [1:5] => 1 [4:2] => 1 )
- La pregunta 1 ha tenido 1 persona que votó 7
- La pregunta 2 ha tenido 1 persona que votó 2
y así sucesivamente.
¿Cómo puedo sumar auxiliarmente estos resultados para después pintar la tabla como quiero?