在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中文網其他相關文章!