<?php
function validate_length($min = 1, $max = null)
{
return static function ($value = null) use ($min, $max) {
$len = strlen($value);
if (null !== $min && $len < $min) {
return false;
}
if (null !== $max && $len > $max) {
return false;
}
return $value;
};
}
$a = [
'a' => 'value',
'b' => '',
'c' => 'Valid'
];
$result = filter_var_array ($a, [
'a' => ['filter' => FILTER_CALLBACK, 'options' => validate_length(null, 4)],
'b' => ['filter' => FILTER_CALLBACK, 'options' => validate_length(1)],
'c' => ['filter' => FILTER_CALLBACK, 'options' => validate_length(1, 10)]
]);
var_dump($result);
preferences:
25.55 ms | 405 KiB | 5 Q