[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 なども削除されます。

PHP