PHP で 2 次元配列を特定の値で効率的にフィルタリングするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-26 02:08:11
オリジナル
282 人が閲覧しました

How can I efficiently filter a two-dimensional array in PHP by a specific value?

PHP での値による 2 次元配列の効率的なフィルター処理

PHP プログラミングで、特定の値による 2 次元配列の効率的なフィルター処理汎用性の高い array_filter 関数と、 callback.

単一値による単純なフィルタリング

キー内の特定の値で配列をフィルタリングするには、次の構文を使用できます:

$new = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
ログイン後にコピー

ここで、$arr は入力配列であり、コールバック関数は各サブ配列の名前キーがターゲットと一致するかどうかをチェックします。 価値。結果の $new 配列には、名前が 'CarEnquiry' と等しいサブ配列のみが含まれます。

複数の値の交換可能なフィルタリング

ターゲット値が異なる場合は、次のことが可能です。交換可能なフィルタリングを処理するためにコールバック関数を強化します:

$filterBy = 'CarEnquiry'; // or Finance etc.

$new = array_filter($arr, function ($var) use ($filterBy) {
    return ($var['name'] == $filterBy);
});
ログイン後にコピー

コールバック内の use キーワード関数を使用すると、$filterBy 変数にアクセスできます。これを変更してさまざまなターゲット値を指定し、動的フィルタリングを可能にします。

使用例

次の配列を例:

$arr = [
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'NEW',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'CarEnquiry',
        'status' => 'CALL1',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Finance',
        'status' => 'CALL2',
        'appointment' => 0
    ],
    [
        'interval' => '2014-10-26',
        'leads' => 0,
        'name' => 'Partex',
        'status' => 'CALL3',
        'appointment' => 0
    ]
];
ログイン後にコピー

名前が「CarEnquiry」の結果と等しいエントリのみを含めるように $arr をフィルタリングするin:

$filtered = array_filter($arr, function ($var) {
    return ($var['name'] == 'CarEnquiry');
});
ログイン後にコピー

結果の $filtered 配列には次のものが含まれます:

Array
(
    [0] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => NEW
            [appointment] => 0
        )

    [1] => Array
        (
            [interval] => 2014-10-26
            [leads] => 0
            [name] => CarEnquiry
            [status] => CALL1
            [appointment] => 0
        )

    )
ログイン後にコピー

以上がPHP で 2 次元配列を特定の値で効率的にフィルタリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート