How to remove null values with PHP?

To remove null values in PHP, use array_filter(). This function filters out elements that are considered empty, including null values, from an array ?

Syntax

array_filter(array $array, callable $callback = null, int $mode = 0)

Basic Example

Here's how to remove null values from an associative array ?

<?php
$studentDetails = array("firstName" => "John", "lastName"=> null, "age" => 25);
echo "Original array:<br>";
print_r($studentDetails);

$result = array_filter($studentDetails);
echo "\nAfter removing null values:<br>";
print_r($result);
?>
Original array:
Array
(
    [firstName] => John
    [lastName] => 
    [age] => 25
)

After removing null values:
Array
(
    [firstName] => John
    [age] => 25
)

Custom Callback for Strict Null Filtering

By default, array_filter() removes all "falsy" values (null, false, 0, empty string). To remove only null values specifically ?

<?php
$data = array("name" => "Alice", "score" => 0, "email" => null, "active" => false);
echo "Original array:<br>";
print_r($data);

// Remove only null values
$filtered = array_filter($data, function($value) {
    return $value !== null;
});

echo "\nAfter removing only null values:<br>";
print_r($filtered);
?>
Original array:
Array
(
    [name] => Alice
    [score] => 0
    [email] => 
    [active] => 
)

After removing only null values:
Array
(
    [name] => Alice
    [score] => 0
    [active] => 
)

Indexed Arrays

For indexed arrays, array_filter() preserves original keys. Use array_values() to reindex ?

<?php
$numbers = array(1, null, 3, null, 5);
echo "Original:<br>";
print_r($numbers);

$filtered = array_filter($numbers);
echo "\nFiltered (preserves keys):<br>";
print_r($filtered);

$reindexed = array_values($filtered);
echo "\nReindexed:<br>";
print_r($reindexed);
?>
Original:
Array
(
    [0] => 1
    [1] => 
    [2] => 3
    [3] => 
    [4] => 5
)

Filtered (preserves keys):
Array
(
    [0] => 1
    [2] => 3
    [4] => 5
)

Reindexed:
Array
(
    [0] => 1
    [1] => 3
    [2] => 5
)

Conclusion

Use array_filter() to remove null values from arrays. For strict null-only filtering, provide a custom callback function. Combine with array_values() to reindex filtered arrays.

Updated on: 2026-03-15T09:28:23+05:30

805 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements