public function groupBy($set, $groupingKey) { $result = array(); foreach ($set as $element) { $result[ObjectAccess::getPropertyPath($element, $groupingKey)][] = $element; } return $result; }