respect-validation/docs/validators/Sorted.md
Alexandre Gomes Gaigalas d9cdc118b2 Introduce REUSE compliance
This commit introduces REUSE compliance by annotating all files
with SPDX information and placing the reused licences in the
LICENSES folder.

We additionally removed the docheader tool which is made obsolete
by this change.

The main LICENSE and copyright text of the project is now not under
my personal name anymore, and it belongs to "The Respect Project
Contributors" instead.

This change restores author names to several files, giving the
appropriate attribution for contributions.
2026-01-21 06:28:11 +00:00

2.5 KiB

Sorted

  • Sorted(string $direction)

Validates whether the input is sorted in a certain order or not.

v::sorted('ASC')->assert([1, 2, 3]);
// Validation passes successfully

v::sorted('ASC')->assert('ABC');
// Validation passes successfully

v::sorted('DESC')->assert([3, 2, 1]);
// Validation passes successfully

v::sorted('ASC')->assert([]);
// Validation passes successfully

v::sorted('ASC')->assert([1]);
// Validation passes successfully

You can also combine Call to create custom validations:

v::call(
        fn (array $input): array  => array_column($input, 'key'),
        v::sorted('ASC')
    )->assert([
        ['key' => 1],
        ['key' => 5],
        ['key' => 9],
    ]);
// Validation passes successfully

v::call('strval', v::sorted('DESC'))->assert(4321);
// Validation passes successfully

v::call('iterator_to_array', v::sorted('ASC'))->assert(new ArrayIterator([1, 7, 4]));
// → `[1, 7, 4]` must be sorted in ascending order

Templates

Sorted::TEMPLATE_ASCENDING

Mode Template
default {{subject}} must be sorted in ascending order
inverted {{subject}} must not be sorted in ascending order

Sorted::TEMPLATE_DESCENDING

Mode Template
default {{subject}} must be sorted in descending order
inverted {{subject}} must not be sorted in descending order

Template placeholders

Placeholder Description
subject The validated input or the custom validator name (if specified).

Categorization

  • Arrays
  • Strings

Changelog

Version Description
2.0.0 Add support for strings
2.0.0 Do not use array keys to sort
2.0.0 Use sorting direction instead of boolean value
2.0.0 Do not accept callback in the constructor
1.1.1 Created

See also: