Back to Validation

Sorted

docs/validators/Sorted.md

3.1.12.7 KB
Original Source
<!-- SPDX-License-Identifier: MIT SPDX-FileCopyrightText: (c) Respect Project Contributors SPDX-FileContributor: Alexandre Gomes Gaigalas <[email protected]> SPDX-FileContributor: Henrique Moody <[email protected]> SPDX-FileContributor: Mikhail Vyrtsev <[email protected]> -->

Sorted

  • Sorted(string $direction)

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

php
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 After to create custom validations:

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

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

v::after('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

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

Sorted::TEMPLATE_DESCENDING

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

Template placeholders

PlaceholderDescription
subjectThe validated input or the custom validator name (if specified).

Categorization

  • Arrays
  • Strings

Changelog

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

See Also