[英]Filter array with variable and keep results
我有和數組:
Array(
[9533]=>44
[6478]=>56
)
我想用一個變量過濾數組。 我已經試過了:
function filterArray($value){
return ($value == $myVar);
}
$filteredArray = array_filter($myArray, 'filterArray');
print_r($filteredArray);
它只是打印:
array()
如果我將變量更改為像44這樣的硬數字,那么它將給我我想要的。
Array(
[9533]=>44
)
不要使用全局變量,這是一個壞主意
$myVar = 44;
$filteredArray = array_filter( $myArray,
function($value) use ($myVar) {
return $value == $myVar;
}
);
如果$myVar
是在filterArray
回調函數之外定義的,則需要先在函數內global
聲明它,然后才能使用它。 因此,如果將您的filterArray
回調更改為此,那么它應該起作用:
function filterArray($value){
global $myVar;
return ($value == $myVar);
}
盡量避免在不需要時使用global
關鍵字。 對於大多數函數,您可以改為將變量作為參數傳遞。 在您的情況下, global
是必需的,因為array_filter
不允許使用參數進行回調。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.