array_filterが呼び出される前に初期化されている配列内の値を比較しようとしています。array_filterのコールバック関数内で空でない配列がnullになる
配列が空ではありませんが、コントロールがarray_filterのコールバック関数内を流れるとき、配列はnullに等しくなります。これの理由は何でしょうか?
$stream = $stream_list[$i]['@attributes']; // IS ARRAY
$chargeable_feature = array_filter($applicable_conversions,function($conversion) {
return $conversion['FeatureName'] == $stream['FeaturesUsed'];
// STREAM BECOMES NULL HERE
});
異なるスコープがあります。 $ streamも無名関数に渡してみてください。 –
$ streamはコールバック関数の範囲外です....おそらく 'function($ conversion)use($ stream){' –