Piwik\API\ResponseBuilder::handleArray PHP Method

handleArray() private method

private handleArray ( $array )
    private function handleArray($array)
    {
        $firstArray = null;
        $firstKey = null;
        if (!empty($array)) {
            $firstArray = reset($array);
            $firstKey = key($array);
        }
        $isAssoc = !empty($firstArray) && is_numeric($firstKey) && is_array($firstArray) && count(array_filter(array_keys($firstArray), 'is_string'));
        if (is_numeric($firstKey)) {
            $columns = Common::getRequestVar('filter_column', false, 'array', $this->request);
            $pattern = Common::getRequestVar('filter_pattern', '', 'string', $this->request);
            if ($columns != array(false) && $pattern !== '') {
                $pattern = new Pattern(new DataTable(), $columns, $pattern);
                $array = $pattern->filterArray($array);
            }
            $limit = Common::getRequestVar('filter_limit', -1, 'integer', $this->request);
            $offset = Common::getRequestVar('filter_offset', '0', 'integer', $this->request);
            if ($limit >= 0 || $offset > 0) {
                if ($limit < 0) {
                    $limit = null;
                    // make sure to return all results from offset
                }
                $array = array_slice($array, $offset, $limit, $preserveKeys = false);
            }
        }
        if ($isAssoc) {
            $hideColumns = Common::getRequestVar('hideColumns', '', 'string', $this->request);
            $showColumns = Common::getRequestVar('showColumns', '', 'string', $this->request);
            if ($hideColumns !== '' || $showColumns !== '') {
                $columnDelete = new ColumnDelete(new DataTable(), $hideColumns, $showColumns);
                $array = $columnDelete->filter($array);
            }
        }
        return $this->apiRenderer->renderArray($array);
    }