0

私は配列を持っています:

Array(
  [9533]=>44
  [6478]=>56
)

配列を変数でフィルタリングしたい。私はこれを試しました:

function filterArray($value){
    return ($value == $myVar);
}

$filteredArray = array_filter($myArray, 'filterArray');
print_r($filteredArray);

印刷するだけです:

array()

変数を 44 のような厳密な数値に変更すると、必要な数値が得られます。

Array(
  [9533]=>44
)
4

2 に答える 2

3

グローバルを使用しないでください。それは悪い考えです

$myVar = 44; 
$filteredArray = array_filter( $myArray, 
                               function($value) use ($myVar) {
                                   return $value == $myVar;
                               }
                             );
于 2012-08-13T21:47:01.933 に答える
0

$myVarがコールバック関数の外部で定義されている場合は、使用する前に関数内でfilterArray宣言する必要があります。globalしたがって、filterArrayコールバックをこれに変更すると、機能するはずです。

function filterArray($value){
    global $myVar;
    return ($value == $myVar);
}

デモ

global必要のないときは、キーワードの使用を避けてください。ほとんどの関数では、代わりに変数を引数として渡すことができます。あなたの場合、パラメータを使用したコールバックを許可しないため、globalが必要です。array_filter

于 2012-08-13T21:43:25.690 に答える