現在の位置: ホーム> 最新記事一覧> array_filter()は、is_numericなどのグローバル関数で使用されます

array_filter()は、is_numericなどのグローバル関数で使用されます

M66 2025-06-03

PHPでは、 array_filter()は非常に実用的な関数であり、アレイ内の要素をフィルタリングし、基準を満たす要素のみを保持します。通常、コールバック関数と組み合わせて使用​​され、多くの実用的なアプリケーションでは、グローバル関数( IS_NUMERICなど)を使用してデータをフィルタリングすることは簡潔で効率的な方法です。

この記事では、例を使用して、 is_numericを使用してarray_filter()を使用してアレイで数値要素をフィルタリングする方法を示します。

基本的な構文

array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $配列:配列を入力します。

  • $ callback :各要素が保持されているかどうかを判断するために使用されるコールバック関数。

  • $モード:フィルターモード、オプション。

コールバック関数が提供されていない場合、 array_filter()は、デフォルトでfalseに相当するすべての値( false0""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コードがデータ処理においてより柔軟で強力になります。