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]); } }