現在の位置: ホーム> 最新記事一覧> filter_idとarray_map()を組み合わせてArrayで複数のIDを効率的にフィルタリングする方法は?

filter_idとarray_map()を組み合わせてArrayで複数のIDを効率的にフィルタリングする方法は?

M66 2025-06-14

filter_idとarray_map()を組み合わせてArrayで複数のIDを効率的にフィルタリングする方法は?

PHPでは、多くの場合、より大きな配列から特定の基準を満たす要素を除外する必要があります。複数の要素を持つ配列があり、特定の特定のIDのみを保持したいとします。一般的な方法は、 filter_idarray_map()関数の組み合わせを使用することです。次に、アレイで複数のIDを効率的にフィルタリングする方法について説明します。

1。FILTER_IDとARRAY_MAP ()関数を理解します

  • filter_id :この関数の主な機能は、配列内の各要素を判断し、特定の条件を満たす要素を除外することです。通常、コールバック関数で使用され、カスタム条件に基づいてフィルタリングできます。

  • array_map() :この関数は、配列内の各要素でコールバック操作を実行します。 filter_idとは異なり、フィルタリングはありませんが、配列の各要素に操作(変換、変更など)を適用します。

2。array_map ()を使用して要素を処理します

filter_idarray_map()を組み合わせると、最初にarray_map()を使用して配列の要素を処理し、フィルタリングする要素形式または構造を返すことができます。次に、 Filter_IDは条件付きフィルタリングに使用されます。

たとえば、ユーザーのIDリストから有効なIDをフィルタリングします。

 <?php
// これが当社の元のユーザーであると仮定します ID 配列
$user_ids = [101, 102, 103, 104, 105, 106];

// 定義有効 ID の範囲
$valid_ids = [101, 103, 105];

// 使用 array_map() 对原始配列进行处理
$mapped_ids = array_map(function($id) {
    return 'http://m66.net/user/' . $id;
}, $user_ids);

// 使用 filter_id 効果的な除外 ID
$filtered_ids = array_filter($mapped_ids, function($url) use ($valid_ids) {
    // 抽出する URL 社内 ID,有効かどうかを判断します
    preg_match('/user\/(\d+)/', $url, $matches);
    return in_array($matches[1], $valid_ids);
});

// 出力フィルタリング ID リスト
print_r($filtered_ids);
?>

3。出力結果

上記のコードの出力結果は次のとおりです。

 Array
(
    [0] => http://m66.net/user/101
    [2] => http://m66.net/user/103
    [4] => http://m66.net/user/105
)

この例では、最初にarray_map()を使用して、各IDにドメイン名を追加してURLを含む新しい配列を生成します。次に、 array_filter()を使用してこれらのURLをフィルタリングし、有効なIDのみを保持します(つまり、 $ valid_ids配列に表示されるID)。

4.このコードを最適化する方法

上記のコードは完全に機能していますが、実際のアプリケーションでは、特に配列が非常に大きい場合は、効率を改善することをお勧めします。フィルタリングとマッピング操作を単一のループに組み合わせることにより、処理の時間の複雑さを短縮できます。 Array_filter()の3番目のパラメーターを使用して、この最適化を実現できます。