配列の空要素を削除して切り詰める。
PHPで配列の空要素を削除して切り詰めたい時。
$in = array("", "", "a", "", "b", "c", ""); $out = array_merge(array_diff($in, array("")));
要はarray_diff()で空要素との差分を取り、そのままだと添字が維持されたままなのでarray_merge()で添字を振り直すと。
Perlでarray_diff()は無さげだけど、普通にこれで行けるは行ける。
my @out = (); my @in = ("", "", "a", "", "b", "c", ""); for($i = 0; $i < @in; $i++) { if($in[$i] ne "") { push(@out, $in[$i]); } }