PHP field-level input validation errors
PHP
<?php
function validate(array $input, array $rules): array
{
$errors = [];
foreach ($rules as $field => $checks) {
$value = $input[$field] ?? null;
foreach ($checks as $rule) {
if ($rule === 'required' && ($value === null || $value === '')) {
$errors[$field] = 'is required';
break;
}
if ($rule === 'email' && $value !== null && !filter_var($value, FILTER_VALIDATE_EMAIL)) {
$errors[$field] = 'must be a valid email';
}
if ($rule === 'int' && $value !== null && filter_var($value, FILTER_VALIDATE_INT) === false) {
$errors[$field] = 'must be an integer';
}
}
}
return $errors;
}