恥ずかしながら、以前は配列から空の値を削除する場合、foreach または while が強制されていました。配列内の空の要素を削除するには、これら 2 つの構文構造を使用します。
<?php foreach($arr as $k=>$v){ if(!$v) unset($arr[$k]); }
配列が大きすぎると、この処理は効率的ではないことがわかりました。 foreach は現在操作されている配列をコピーするため、ページ上に foreach が多すぎると、各 foreach 操作は変数をコピーします。
ネットを徘徊していたら、array_filterを使えと言う人がいたのでマニュアルを開いて見てみたら、宝の山を守っていたけど使い方が分からなかった。
array_filter 関数の機能は、コールバック関数を使用して配列をフィルタリングすることです。コールバック関数がない場合、デフォルトでは配列内の false 値を持つ項目を削除します。以下の例:
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => NULL, 4 => '' ); print_r(array_filter($entry));
出力値は次のとおりです:
配列
(
[0] => フー
[2] => -1
)
提案: PHP の 2 つの最も重要な章は、配列操作と文字列操作です。これら 2 つの章の関数については、使用するときに確認してください。