How can arrays be utilized for more efficient variable validation in PHP?

When validating variables in PHP, using arrays can provide a more efficient and organized way to check multiple conditions at once. By storing validation rules in an array, you can easily iterate through them and apply the necessary checks to each variable. This approach can help streamline the validation process and make the code more maintainable.

```php
// Define validation rules in an array
$validationRules = [
    'username' => [
        'required' => true,
        'min_length' => 5,
        'max_length' => 20,
    ],
    'email' => [
        'required' => true,
        'email' => true,
    ],
    'password' => [
        'required' => true,
        'min_length' => 8,
    ],
];

// Function to validate variables based on rules
function validateVariables($data, $rules) {
    $errors = [];
    
    foreach ($rules as $field => $fieldRules) {
        foreach ($fieldRules as $rule => $value) {
            switch ($rule) {
                case 'required':
                    if ($value && empty($data[$field])) {
                        $errors[$field][] = 'Field is required';
                    }
                    break;
                case 'min_length':
                    if (strlen($data[$field]) < $value) {
                        $errors[$field][] = 'Field must be at least ' . $value . ' characters long';
                    }
                    break;
                case 'max_length':
                    if (strlen($data[$field]) > $value) {
                        $errors[$field][] = 'Field must not exceed ' . $value . ' characters';
                    }
                    break;
                case 'email':
                    if ($value && !filter_var($data[$field], FILTER_VALIDATE_EMAIL)) {
                        $errors[$field][] = 'Invalid email format';
                    }
                    break;
            }
        }
    }
    
    return $errors;
}

// Example usage
$data = [
    'username' => 'john_doe',
    'email' => 'john.doe@example.com',
    'password' => 'password123',
];

$errors = validateVariables($data, $validationRules);

if (!empty($errors)) {
    foreach ($errors as $field => $fieldErrors) {
        echo 'Errors for ' . $field . ': ' . implode(', ', $fieldErrors) . '<br>';
    }
} else {
    echo 'All variables are valid