PHPでは、 array_filter()は非常に実用的な関数であり、アレイ内の要素をフィルタリングし、基準を満たす要素のみを保持します。通常、コールバック関数と組み合わせて使用され、多くの実用的なアプリケーションでは、グローバル関数( IS_NUMERICなど)を使用してデータをフィルタリングすることは簡潔で効率的な方法です。
この記事では、例を使用して、 is_numericを使用してarray_filter()を使用してアレイで数値要素をフィルタリングする方法を示します。
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$配列:配列を入力します。
$ callback :各要素が保持されているかどうかを判断するために使用されるコールバック関数。
$モード:フィルターモード、オプション。
コールバック関数が提供されていない場合、 array_filter()は、デフォルトでfalseに相当するすべての値( false 、 0 、 "" 、 nullなど)を削除します。
$items = ['apple', 42, '123', null, 0, 'banana', 3.14, '0', true];
$numericItems = array_filter($items, 'is_numeric');
print_r($numericItems);
Array
(
[1] => 42
[2] => 123
[6] => 3.14
[7] => 0
)
ご覧のとおり、 array_filter()は、 is_numericによって数値として判断される配列内のすべての要素を保持します。これには、整数、浮動小数点数、数値文字列( 「123」など)、弦「0」が含まれます。
他の条件でis_numericを使用することもできます。たとえば、次のこともできます。
$items = ['apple', 42, '123', null, 0, 'banana', 3.14, '0', true];
// より大きいだけを保持します 10 の値
$filtered = array_filter($items, function ($item) {
return is_numeric($item) && $item > 10;
});
print_r($filtered);
Array
(
[1] => 42
[2] => 123
)
たとえば、Webサイト( https://m66.net/formhandler.phpなど)が、テキスト、null値、または数値を含む可能性のあるユーザー入力を含むデータを受け取るとします。統計または検証のために数値のみを抽出する必要があり、 array_filter()およびis_numeric()でこのタスクをすばやく完了できます。
array_filter()を使用して配列要素をフィルタリングできます。
is_numericなどのグローバル関数で使用すると、非常にシンプルで効率的です。
複雑なフィルタリングは、匿名関数を介してさらなる組み合わせロジックを通じて実行できます。
この手法を習得すると、PHPコードがデータ処理においてより柔軟で強力になります。