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






