如何在 PHP 中以特定值有效過濾二維數組?

Patricia Arquette
發布: 2024-11-26 02:08:11
原創
281 人瀏覽過

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

在PHP 中按值高效過濾二維數組

在PHP 編程中,按特定值高效過濾二維數組可以使用多多高效過濾功能的array_filter 函數結合回調來實現。

簡單地按單一值過濾

要按鍵中的特定值過濾數組,我們可以使用以下語法:

$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
    ]
];
登入後複製

過濾$arr 以僅包含名稱等於「CarEnquiry」結果的條目在:

$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 中以特定值有效過濾二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板