[PHP] array_filter で配列の空要素を削除する
作成日: 2026年08月13日
PHP の array_filter 関数は、コールバック関数を指定せずに使用すると、配列から空の要素を削除することができます。
<?php
$values = ["apple", "", null, "banana", false, "orange"];
$filtered_values = array_filter($values);
var_dump($filtered_values);
実行結果は下記のとおりです。
array(3) {
[0]=>
string(5) "apple"
[3]=>
string(6) "banana"
[5]=>
string(6) "orange"
}
array_filter 関数は元の配列のキーをそのまま維持します。キーを 0 からの連番に振り直したい場合は、array_values 関数と組み合わせます。
<?php
$values = ["apple", "", null, "banana", false, "orange"];
$filtered_values = array_values(array_filter($values));
var_dump($filtered_values);
実行結果は下記のとおりです。
array(3) {
[0]=>
string(5) "apple"
[1]=>
string(6) "banana"
[2]=>
string(6) "orange"
}
コールバック関数を指定しない場合、"" や null だけでなく、0 や "0"、false なども削除されます。