概要
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"のキーのものだけが残った配列が返ってくる。