<?php
//data inicial $data
$data =
array(array('CATE0001.Socio',
10),
array('CATE0001.Socio',
5),
array('CATE0004.Gerente',
3),
array('CATE0004.Gerente',
20),
array('CATE0006.Encargado',
10));
0 =>
0 => string 'CATE0001.Socio'
1 => int 10
1 =>
0 => string 'CATE0001.Socio'
1 => int 5
2 =>
0 => string 'CATE0004.Gerente'
1 => int 3
3 =>
0 => string 'CATE0004.Gerente'
1 => int 20
4 =>
0 => string 'CATE0006.Encargado'
1 => int 10
//agrupar por usuario (cortar, solo el nombre) -> dinamicamente
foreach($data as $i){
$user = $catUser[1];
"gridGroupName"=>$user,
"precio"=>$i[1]);
}
/*
* crear el array manualmente
* $group['Socio'] = array(array('gridGroupName' => 'Socio','precio' => 10),array('gridGroupName' => 'Socio','precio' => 5));
$group['Gerente'] =array(array('gridGroupName' => 'Gerente','precio' =>20),array('gridGroupName' => 'Gerente','precio' => 3));
$group['Encargado'] = array(array('gridGroupName' => 'Encargado','precio' => 10)) ;
*/
//resultado de la grupacion == $group, del var_dump
'Socio' =>
0 =>
'gridGroupName' => string 'Socio'
'precio' => int 10
1 =>
'gridGroupName' => string 'Socio'
'precio' => int 5
'Gerente' =>
0 =>
'gridGroupName' => string 'Gerente'
'precio' => int 20
1 =>
'gridGroupName' => string 'Gerente'
'precio' => int 3
'Encargado' =>
0 =>
'gridGroupName' => string 'Encargado'
'precio' => int 10
//sumar columnas - totales de reporte
$precioFinal = 0;
foreach($group as $k=> $i){
$precioGrupo = 0;
foreach($group[$k] as $r){
//acumulados
$precioGrupo += $r['precio'];
//totales Finales
$precioFinal += $r['precio'];
}
$group[$k]['acumulados'] =
array("precio"=>
$precioGrupo);
}
$group['TotalesFinales'] =
array("precio"=>
$precioFinal);
//nuevo array con los datos agregados (acumulados y totales finales)
'Socio' =>
0 =>
'gridGroupName' => string 'Socio'
'precio' => int 10
1 =>
'gridGroupName' => string 'Socio'
'precio' => int 5
'acumulados' =>
'precio' => int 15
'Gerente' =>
0 =>
'gridGroupName' => string 'Gerente'
'precio' => int 20
1 =>
'gridGroupName' => string 'Gerente'
'precio' => int 3
'acumulados' =>
'precio' => int 23
'Encargado' =>
0 =>
'gridGroupName' => string 'Encargado'
'precio' => int 10
'acumulados' =>
'precio' => int 10
'TotalesFinales' =>
'precio' => int 48