配列の中から「空」のデータ("", null, false, [], 0)を削除したい時、$arrayが元の配列だとして、
foreach ( $array as $key => $val ) {
if ( empty( $val ) ) {
unset( $array[$key] );
}
}
とする。
foreach
で回してempty()
ならunset()
で削除。
特定の値だけを削除したい場合は empty() ではなく普通に比較させる。
foreach ( $array as $key => $val ) {
if ( $val === "hoge" ) {
unset( $array[$key] );
}
}
emptyではなく、単純に空文字(文字数が0の文字列)を除きたい場合は、
$array = array_filter($array, 'strlen');
と1行だけで処理できる。
不要な要素を削除したら、普通の添字配列だった場合は連番を振り直すためにarray_values()
をかけておきましょう。
$array = array_values($array);
コメント