読者です 読者をやめる 読者になる 読者になる

アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

配列内の空要素を削除する

ある配列から空の要素(0、空文字、空配列…など)を取り除きたい時は
array_filter関数に突っ込むだけでOKのようです。便利。

ここにゴミ配列があるじゃろ?

$hoge = array(
    0 => array(),
    1 => array("", ""),
    2 => array("a", "b"),
    3 => "",
    4 => "hoge",
);

これをこうして

$hoge2 = array_filter($hoge);
print_r($hoge2);

こうじゃ

array(
    1 => array("", ""),
    2 => array("a", "b"),
    4 => "hoge",
);

まあ案の定というかなんというか、あくまでふんわりした比較です。
がっちりした感じにするのであれば第二引数に関数名を渡して

array_filter($hoge, "is_null")

とかそういう感じで。

空でない要素をカウントとかに使っている…のですが、もしかして他にもっと賢い書き方あるかなあ。

$hoge_count = count(array_filter($hoge));