【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) "おやすみ"
}