I have some code that I have tried modifying so that the array is sorted alphabetically, I thought the following:
public function getOptions(array $aggs, $filterEmptyOptions = true)
Should be:
public function getOptions(array sort($aggs), $filterEmptyOptions = true)
But it doesn't work, where should I add sort() to the array?
EDIT: I am trying to sort the brewery names alphabetically
This is my full code if it makes it easier?
class BreweryBoolMustFilter implements BoolFilterInterface
{
/**
 * @param Query $query
 * @param Query\BoolQuery $bool
 * @param Request $request
 * @param array $filters
 */
public function __construct(Query $query, Query\BoolQuery $bool, Request $request, array &$filters)
{
    if ($request->query->has('brewery') && (int) $request->query->get('brewery'))
    {
        $filters['brewery'] = (int) $request->query->get('brewery');
        $bool->addMust(new Query\Term(['breweryId' => $filters['brewery']]));
    }
    $aggs3 = new Terms('breweries');
    $aggs3->setField('breweryId');
    $aggs3->setSize(100);
    $query->addAggregation($aggs3);
}
/**
 * @param array $aggs
 * @param bool $filterEmptyOptions
 *
 * @return array
 */
public function getOptions(array $aggs, $filterEmptyOptions = true)
{
    $breweriesObjects = (new BreweryQuery)->find();
    $breweries = [];
    foreach ($breweriesObjects as $breweryObject)
    {
        $breweries[$breweryObject->getId()] = [
            'name'      => $breweryObject->getName(),
            'doc_count' => 0,
        ];
    }
    foreach ($aggs['breweries']['buckets'] as $bucket)
    {
        if (isset($breweries[$bucket['key']]))
        {
            $breweries[$bucket['key']]['doc_count'] = $bucket['doc_count'];
        }
    }
    if (true === $filterEmptyOptions)
    {
        foreach ($breweries as $key => $brewery)
        {
            if (0 == $brewery['doc_count'])
            {
                unset($breweries[$key]);
            }
        }
    }
    return $breweries;
}
 
     
    