createSelect(); $query->setRows(50); // get grouping component and set a field to group by $groupComponent = $query->getGrouping(); $groupComponent->addField('inStock'); // maximum number of items per group $groupComponent->setLimit(3); // get a group count $groupComponent->setNumberOfGroups(true); // this executes the query and returns the result $resultset = $client->select($query); $groups = $resultset->getGrouping(); foreach($groups AS $groupKey => $fieldGroup) { echo '

'.$groupKey.'

'; echo 'Matches: '.$fieldGroup->getMatches().'
'; echo 'Number of groups: '.$fieldGroup->getNumberOfGroups(); foreach($fieldGroup AS $valueGroup) { echo '

'.(int)$valueGroup->getValue().'

'; foreach($valueGroup AS $document) { echo '
'; // the documents are also iterable, to get all fields foreach($document AS $field => $value) { // this converts multivalue fields to a comma-separated string if(is_array($value)) $value = implode(', ', $value); echo ''; } echo '
' . $field . '' . $value . '
'; } } } htmlFooter();