0) { $keys = array_keys($array[0]); $removekey = array_search($groupkey, $keys); if ($removekey===false) return array("Clave \"$groupkey\" no existe"); else unset($keys[$removekey]); $groupcriteria = array(); $return=array(); foreach($array as $value) { $item=null; foreach ($keys as $key) { $item[$key] = $value[$key]; } $busca = array_search($value[$groupkey], $groupcriteria); if ($busca === false) { $groupcriteria[]=$value[$groupkey]; $return[]=array($groupkey=>$value[$groupkey],'groupeddata'=>array()); $busca=count($return)-1; } $return[$busca]['groupeddata'][]=$item; } return $return; } else return array(); } $test_array[] = array(name=>'Juan',color=>'Azul',edad=>24); $test_array[] = array(name=>'Juan',color=>'Rojo',edad=>24); $test_array[] = array(name=>'Juan',color=>'Verde',edad=>24); $test_array[] = array(name=>'Pablo',color=>'Azul',edad=>25); $test_array[] = array(name=>'Pablo',color=>'Amarillo',edad=>25); $test_array[] = array(name=>'Pablo',color=>'Negro',edad=>25); $test_array[] = array(name=>'Pablo',color=>'Blanco',edad=>25); $test_array[] = array(name=>'Diego',color=>'Rojo',edad=>24); $test_array[] = array(name=>'Diego',color=>'Azul',edad=>24); $test_array[] = array(name=>'Jorge',color=>'Verde',edad=>23); $test_array[] = array(name=>'Jorge',color=>'Azul',edad=>23); $test_array[] = array(name=>'Marco',color=>'Blanco',edad=>25); $test_array[] = array(name=>'Marco',color=>'Negro',edad=>25); echo('
'); print_r($test_array); echo('
'); echo('
'); print_r(groupArray($test_array,'edad')); echo('
'); echo('
'); print_r(groupArray($test_array,'color')); echo('
'); echo('
'); print_r(groupArray($test_array,'name')); echo('
'); ?>