SOFTELメモ

</> 技術者募集

【php】空文字の要素を配列から取り除きたい

問題

以下の配列から、

$a = array('あろは', 'おはよう', '', 'おやすみ', '');

空文字の要素を取り除きたい。

foreach ($a as $k => $v) {
    if ($v === '') {
        unset($a[$k]);
    }
}

みたいなことをしますか? 1行で書くには?

答え

array_filter関数を使うと1行で書ける。

$a = array_filter($a, 'strlen');

strlen関数がfalseに相当する値(つまり0)を返す要素は、array_filter関数の結果に含まれない。

めでたく、空文字が削除されます。

array(3) {
  [0]=>
  string(6) "あろは"
  [1]=>
  string(8) "おはよう"
  [3]=>
  string(8) "おやすみ"
}

関連するメモ

コメント