How to validate an array in Laravel?

In Laravel, you can validate array data using the builtin Validator class. This is essential for ensuring data integrity before processing user input or form submissions.

To use Laravel's validation features, ensure you have Laravel installed and include the Validator facade in your controller.
use Illuminate\Support\Facades\Validator;

Validating Associative Arrays

When working with associative arrays, you define validation rules for each key. Here's how to validate an array with firstname, lastname, and address fields ?

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class TestUserController extends Controller {
    public function index() {
        $formData = array(
            'firstname' => 'Siya',
            'lastname' => 'Nadkarni',
            'address' => 'xyz'
        );
        
        $rules = array(
            'firstname' => 'required|string',
            'lastname' => 'required|string',
            'address' => 'required|string'
        );
        
        $validator = Validator::make($formData, $rules);
        
        if ($validator->fails()) {
            echo "Invalid Array";
        } else {
            echo "Array Validation is Successful";
        }
    }
}
?>
Array Validation is Successful

Missing Required Fields

If a required field is missing from the array, validation will fail ?

<?php
$formData = array(
    'firstname' => 'Siya',
    'lastname' => 'Nadkarni'
    // address field is missing
);

$rules = array(
    'firstname' => 'required|string',
    'lastname' => 'required|string',
    'address' => 'required|string'  // This will fail
);

$validator = Validator::make($formData, $rules);

if ($validator->fails()) {
    echo "Invalid Array";
} else {
    echo "Array Validation is Successful";
}
?>
Invalid Array

Optional Fields

Fields without validation rules are ignored and won't cause validation failure ?

<?php
$formData = array(
    'firstname' => 'Siya',
    'lastname' => 'Nadkarni',
    'address' => 'xyz'  // No rule defined for this field
);

$rules = array(
    'firstname' => 'required|string',
    'lastname' => 'required|string'
    // address rule is commented out
);

$validator = Validator::make($formData, $rules);

if ($validator->fails()) {
    echo "Invalid Array";
} else {
    echo "Array Validation is Successful";
}
?>
Array Validation is Successful

Validating Numeric Arrays

For indexed arrays with numeric values, use the asterisk (*) wildcard to validate all elements ?

<?php
$formData = array(10, 20, 30, 40);

$validator = Validator::make(compact('formData'), [
    'formData' => 'required|array',
    'formData.*' => 'integer'
]);

if ($validator->fails()) {
    echo "Invalid Array";
} else {
    echo "Array Validation is Successful";
}
?>
Array Validation is Successful

Common Validation Rules

Rule Description Example
required Field must be present 'name' => 'required'
array Must be an array 'items' => 'array'
string Must be a string 'name' => 'string'
integer Must be an integer 'age' => 'integer'
* Validates all array elements 'items.*' => 'required'

Conclusion

Laravel's Validator class provides flexible array validation using rules for associative arrays and wildcards for indexed arrays. Use compact() for numeric arrays and define specific rules for each field in associative arrays.

Updated on: 2026-03-15T10:05:31+05:30

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements