如何按特定鍵值范圍過濾 php 數(shù)組并保持鍵名? 遵循以下步驟:定義一個回調(diào)函數(shù),檢查鍵值是否在指定范圍內(nèi)。調(diào)用 array_filter(),傳入回調(diào)函數(shù)和數(shù)組作為參數(shù)。
PHP:如何按特定鍵值范圍過濾數(shù)組并保持鍵名?
在 PHP 中,我們可以使用 array_filter()
函數(shù)按特定鍵值范圍過濾數(shù)組,同時保持鍵名。此函數(shù)接受一個回調(diào)函數(shù)作為參數(shù),該回調(diào)函數(shù)決定是否保留數(shù)組中的每個元素。
回調(diào)函數(shù)
回調(diào)函數(shù)應(yīng)該接受兩個參數(shù):密鑰和值。它返回一個布爾值,指示是否保留該元素。
語法
array_filter($array, $callback, $flag = 0);
登錄后復(fù)制
其中:
$array
是要過濾的數(shù)組。$callback
是一個回調(diào)函數(shù),決定是否保留數(shù)組中的每個元素。$flag
是一個可選參數(shù),指定如何對數(shù)組中的元素進(jìn)行索引。
示例
假設(shè)我們要從一個關(guān)聯(lián)數(shù)組中過濾出鍵值在特定范圍內(nèi)的元素。以下是實現(xiàn)此目的的步驟:
- 定義一個回調(diào)函數(shù),該函數(shù)檢查鍵值是否在指定范圍內(nèi)。調(diào)用
array_filter()
,將回調(diào)函數(shù)和數(shù)組作為參數(shù)傳遞。代碼
<?php $array = [ "a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5, ]; // 定義回調(diào)函數(shù) $callback = function ($key, $value) { return $value >= 2 && $value <= 4; }; // 按鍵值范圍過濾數(shù)組 $filteredArray = array_filter($array, $callback); // 輸出結(jié)果 print_r($filteredArray); ?>
登錄后復(fù)制
輸出
Array ( [b] => 2 [c] => 3 [d] => 4 )
登錄后復(fù)制
如你所見,結(jié)果數(shù)組僅包含鍵值為 2 到 4 之間的元素,并且鍵名已保留。