エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【PHP】配列の中の空文字やnull等を削りたいときに使う関数【435日目】

概要

1.以下のときに"a"のキーだけを返したい

["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false]

2.array_filter()を使う

配列で、特定条件のものを削りたい

["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false];

こんなときに、"a"のキーのものを取り出したい。

nullとか、falseとか、想定外のものを削りたいとかよくありますよね。

array_filter

$array = ["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false];

return array_filter($array)

これでよし。値がPHPの型変換でfalseになるものは全部削られる。0とかも削られる。
逆に言うと、trueになるものだけ残る。

となると、こういうこともしたくなる。

削るものを指定したい

削るものを指定したい。これも同じくarray_filterを使うことが出来る。

むしろ、それが本来の役割。第二引数に関数を指定するといい。

$array = ["a"=>"ringo", "b"=>null, "c"=>null, "d"=>false];

// ["a"=>"ringo", "d"=>false]
return array_filter($array, function ($value, $key) {
    return !is_null($value);
});

これで、nullはfalseになるので除外される。結果、trueになる"a"と"d"のキーのものだけが残った配列が返ってくる。

公式ドキュメント

PHP: array_filter - Manual