現在の位置: ホーム> 最新記事一覧> array_filter()の基本的な使用法の詳細な説明

array_filter()の基本的な使用法の詳細な説明

M66 2025-05-14

PHP開発では、アレイは非常に一般的に使用されるデータ構造です。アレイを動作させる場合、null値の削除、特定の条件を満たす要素を保持するなど、アレイをフィルタリングする必要があることがよくあります。Array_filter ()関数は、これに特化した非常に実用的なツールです。

この記事では、 Array_Filter()の基本的な使用法、パラメーターの意味、およびいくつかの一般的な使用法シナリオを詳細に説明し、この関数の実際のアプリケーションをすばやく習得するのに役立ちます。

1。array_filter()関数の紹介

array_filter()は、phpの組み込み関数の1つです。その目的は、コールバック関数を使用して配列内の各要素をフィルタリングし、返品値を持つ要素のみを真に残すことです。その構文は次のとおりです。

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

パラメーター説明:

  • $配列:フィルターする元の配列。

  • $ callback (オプション):要素が保持されているかどうかを判断するために使用されるコールバック関数。 nullの場合、デフォルトの削除値はfalsenull 、empty string '' 、number 0、empty array []およびその他の「false値」です。

  • $モード(PHP 7.4+):コールバック関数に渡されたコンテンツが値、キー、またはキー値ペアであるかどうかを指定します。

2。基本的な使用例

1.配列から「false値」を削除します

これは、フォームデータや構成アイテムなどのクリーニングに適している最も一般的な方法です。

 $data = ["apple", "", null, 0, "banana", false];

$filtered = array_filter($data);

print_r($filtered);

出力結果:

 Array
(
    [0] => apple
    [4] => banana
)

コールバック関数が渡されない場合、 array_filter()はデフォルトで「false値」を削除します。

2。コールバック関数を使用して、フィルタリングロジックをカスタマイズします

たとえば、アレイで長さが5を超える文字列のみを保持します。

 $words = ["apple", "strawberry", "banana", "kiwi"];

$filtered = array_filter($words, function($word) {
    return strlen($word) > 5;
});

print_r($filtered);

出力:

 Array
(
    [1] => strawberry
    [2] => banana
)

3.キー名でフィルター(array_filter_use_keyを使用)

PHP 7.4から始めて、3番目のパラメーター$モードを介してフィルタリングコンテンツを制御できます。

 $data = [
    'a' => 100,
    'b' => 200,
    'x' => 300,
];

$filtered = array_filter($data, function($key) {
    return $key === 'x';
}, ARRAY_FILTER_USE_KEY);

print_r($filtered);

出力:

 Array
(
    [x] => 300
)

3。ARRAY_FILTER()共通アプリケーションシナリオ

1.フォームデータをクリーニングします

$_POST = [
    'username' => 'alice',
    'email' => '',
    'age' => null,
];

$clean_data = array_filter($_POST);

これにより、ヌルフィールドをすばやく削除でき、有効なデータのみが保持されます。

2。特定の基準を満たすユーザーデータをフィルターします

$users = [
    ['name' => 'Tom', 'active' => true],
    ['name' => 'Jerry', 'active' => false],
    ['name' => 'Spike', 'active' => true],
];

$active_users = array_filter($users, function($user) {
    return $user['active'];
});

print_r($active_users);

3. URLリストの法的リンクを動的にフィルタリングします

$urls = [
    'https://m66.net/home',
    'invalid-url',
    'http://m66.net/contact',
    '',
];

$valid_urls = array_filter($urls, function($url) {
    return filter_var($url, FILTER_VALIDATE_URL);
});

print_r($valid_urls);

4。注意すべきこと

  • array_filter()を使用した後、元の配列のキー名はリセットされません(リセットする必要がある場合は、 array_values()で使用できます)。

  • KeyNameでフィルタリングする必要がある場合は、PHPバージョン> = 7.4を確認し、 array_filter_use_keyを使用してください。

  • コールバック関数は、要素が保持されているかどうかを判断するためにTrueまたはfalsを返す必要があります。