Elastica\Aggregation\Filters::toArray PHP Method

toArray() public method

public toArray ( ) : array
return array
    public function toArray()
    {
        $array = [];
        $filters = $this->getParam('filters');
        foreach ($filters as $filter) {
            if (self::NAMED_TYPE === $this->_type) {
                $key = key($filter);
                $array['filters']['filters'][$key] = current($filter)->toArray();
            } else {
                $array['filters']['filters'][] = current($filter)->toArray();
            }
        }
        if ($this->_aggs) {
            $array['aggs'] = $this->_convertArrayable($this->_aggs);
        }
        return $array;
    }

Usage Example

Example #1
0
 /**
  * @group unit
  */
 public function testToArrayUsingAnonymousFilters()
 {
     $expected = array('filters' => array('filters' => array(array('term' => array('color' => 'blue')), array('term' => array('color' => 'red')))), 'aggs' => array('avg_price' => array('avg' => array('field' => 'price'))));
     $agg = new Filters('by_color');
     $agg->addFilter(new Term(array('color' => 'blue')));
     $agg->addFilter(new Term(array('color' => 'red')));
     $avg = new Avg('avg_price');
     $avg->setField('price');
     $agg->addAggregation($avg);
     $this->assertEquals($expected, $agg->toArray());
 }