docs/validators/Sorted.md
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 After to create custom validations:
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
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 |
| Placeholder | Description |
|---|---|
subject | The validated input or the custom validator name (if specified). |
| 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 |