題名通りです。
無名関数のuseに渡す値を参照渡しにしないと、毎回値がリセットされてしまうようです。
例として、まわりくどいですが、配列の重複を削除する方法。
array_unique使えばええやんというツッコミはなしで
$target_array = [1, 2, 3, 4, 5, 2, 4];
$check_array = [];
$filterd_array = array_filter ($target_array, function($item) use (&$check_array) {
if ( in_array($item, $check_array) ) {
return false;
}
$check_array[] = $item;
return true;
});
var_dump($filterd_array);
みたいな感じですかね。