現在の位置: ホーム> 最新記事一覧> array_filter()は、匿名関数と組み合わせて使用​​されます

array_filter()は、匿名関数と組み合わせて使用​​されます

M66 2025-06-05

PHPでの配列データのフィルタリングは、特にユーザー入力、APIデータ、またはデータベースの結果を処理する場合、非常に一般的な操作です。 array_filter()は、匿名関数(閉鎖)を組み合わせて柔軟で効率的なデータフィルタリングを実現できるPHPによって提供される強力な機能です。この記事では、さまざまなフィルタリングロジックを実装するためにそれらを使用する方法を理解するために段階的に説明します。

1。array_filter ()とは何ですか?

array_filter()は、コールバック関数(コールバック)を介して配列内の各要素を判断する内蔵PHP関数であり、条件を満たす要素で構成される新しい配列を返します。

基本的な構文は次のとおりです。

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $配列:フィルターする配列。

  • $ callback :各要素に使用されるコールバック関数。省略した場合、 falseの値を持つ要素はデフォルトで削除されます。

  • $モード:オプションパラメーターキー名をパラメーターとして渡すかどうかを判断します。

2。匿名の関数と閉鎖の紹介

閉鎖とも呼ばれる匿名関数は、PHPに名前のない関数であり、一時的なロジック処理中に使用するのに非常に適しています。構文は次のとおりです。

 $filterFunc = function($value) {
    return $value > 10;
};

このタイプの関数は、通常、 Array_Filter()で使用され、より詳細なデータ制御を実現します。

3。組み合わせの例を使用します

例1:10を超えるフィルター番号

$numbers = [4, 15, 9, 23, 5];

$filtered = array_filter($numbers, function($value) {
    return $value > 10;
});

print_r($filtered);

出力:

 Array
(
    [1] => 15
    [3] => 23
)

10を超える数値のみが保持されていることがわかります。

例2:アレイで空のフィールドをフィルタリングします(たとえば、フォームが送信された後)

 $formData = [
    'name' => 'Alice',
    'email' => '',
    'age' => null,
    'city' => 'Beijing'
];

$cleanData = array_filter($formData, function($value) {
    return !empty($value);
});

print_r($cleanData);

出力:

 Array
(
    [name] => Alice
    [city] => Beijing
)

例3:キー名がキー値のペアに特定の文字列が含まれている要素を保持します

$data = [
    'user_id' => 101,
    'user_name' => 'Bob',
    'admin_role' => true,
    'timestamp' => 1681920000
];

$filtered = array_filter($data, function($value, $key) {
    return str_contains($key, 'user');
}, ARRAY_FILTER_USE_BOTH);

print_r($filtered);

出力:

 Array
(
    [user_id] => 101
    [user_name] => Bob
)

例4:URLデータを使用したフィルタリング

データソース( https://m66.net/api/postsなど)から次の配列を取得したとします。

 $posts = [
    ['title' => 'Hello World', 'url' => 'https://m66.net/post/1', 'published' => true],
    ['title' => 'Draft Post', 'url' => 'https://m66.net/post/2', 'published' => false],
    ['title' => 'PHP Tips', 'url' => 'https://m66.net/post/3', 'published' => true],
];

array_filter()を使用して、公開された記事のみを保持できます。

 $publishedPosts = array_filter($posts, function($post) {
    return $post['published'] === true;
});

print_r($publishedPosts);

4。概要

array_filter()と匿名関数を組み合わせることで、さまざまなカスタマイズされたデータフィルタリングニーズを簡単に達成できます。数値、文字列、または多次元配列をフィルタリングするかどうかにかかわらず、柔軟に処理するために適切な閉鎖関数を渡すだけです。

提案:

  • ユーザーデータを処理するときは、フィルターを使用して不要なコンテンツをクリアしてください。

  • 匿名関数を使用して、コードの読みやすさとモジュール性を可能な限り改善します。

  • キー名を元の配列と一致させたい場合は、 array_filter_use_bothで使用できます。