class ResultPaginator (View source)

In-memory sorting, filtering, and pagination for datasets.

Used when the DNS backend (API) returns all results at once and pagination/sorting must be handled in PHP rather than SQL.

Methods

static array
sort(array $data, string $sortBy, string $direction = 'ASC')

Sort an array of associative arrays by a given key.

static array
sortRecords(array $data, string $sortBy, string $direction = 'ASC', string $apexName = '')

Sort records while keeping zone-level metadata grouped at the top.

static array
filterByLetter(array $data, string $letter, string $field = 'name')

Filter dataset by starting letter of a field.

static array
filterByPattern(array $data, string $pattern, array $fields)

Filter dataset by pattern match across multiple fields.

static array
filterByValue(array $data, string $field, string $value)

Filter dataset by exact value of a field.

static array
paginate(array $data, int $offset, int $limit)

Apply offset and limit to a dataset.

static array
getDistinctLetters(array $data, string $field = 'name')

Get distinct starting letters from a dataset field.

Details

static array sort(array $data, string $sortBy, string $direction = 'ASC')

Sort an array of associative arrays by a given key.

Parameters

array $data

Dataset to sort

string $sortBy

Key to sort by

string $direction

'ASC' or 'DESC'

Return Value

array

Sorted dataset

static array sortRecords(array $data, string $sortBy, string $direction = 'ASC', string $apexName = '')

Sort records while keeping zone-level metadata grouped at the top.

SOA, NS, and apex records are pinned above the rest regardless of the sort column or direction, so the zone header stays together while the user sorts through the body. Mirrors the SQL backend ordering for #1250.

Parameters

array $data

Records to sort

string $sortBy

Key to sort by

string $direction

'ASC' or 'DESC'

string $apexName

Zone apex name used to detect apex records

Return Value

array

Sorted dataset

static array filterByLetter(array $data, string $letter, string $field = 'name')

Filter dataset by starting letter of a field.

Parameters

array $data

Dataset to filter

string $letter

Starting letter ('all' for no filter, '1' for digits)

string $field

Field name to check

Return Value

array

Filtered dataset

static array filterByPattern(array $data, string $pattern, array $fields)

Filter dataset by pattern match across multiple fields.

Parameters

array $data

Dataset to filter

string $pattern

Search pattern (case-insensitive substring)

array $fields

Fields to search in

Return Value

array

Filtered dataset

static array filterByValue(array $data, string $field, string $value)

Filter dataset by exact value of a field.

Parameters

array $data

Dataset to filter

string $field

Field name

string $value

Value to match (case-insensitive)

Return Value

array

Filtered dataset

static array paginate(array $data, int $offset, int $limit)

Apply offset and limit to a dataset.

Parameters

array $data

Dataset to paginate

int $offset

Starting index

int $limit

Maximum items to return

Return Value

array

Paginated subset

static array getDistinctLetters(array $data, string $field = 'name')

Get distinct starting letters from a dataset field.

Parameters

array $data Dataset
string $field

Field to extract letters from

Return Value

array

Unique starting letters (lowercase)