function grouppable($data, $group) { // Creamos un nuevo grupo. $group = new group(array(data_field => $group[data_field], count_field => $group[count_field], order => $group[order])); // Asociamos el contenido ($data) con el grupo ($group) foreach ($data as $el) { /* elm -> el identificador. /!\ Lo pasamos a minusculas para poder agrupar correctamente. Ej. cosa,COSA deberian ser un mismo elm.*/ $elm = strtolower($el[$group->dataField()]); // elm_qty -> cantidad $elm_qty = $el[$group->countField()]; // Si existe este elemento, lo incrementamos if ($group->exist($elm)) { $group->increment($elm, $elm_qty); } else { $group->setData($elm, $elm_qty); } } return $group->getItems(); }