私はこのような配列を持っています:
Array(
[Rating] => Array(
[0] => Array(
[id] => 4
[rating] => -1
),
[1] => Array(
[id] => 14
[rating] => 9.7
),
[2] => Array(
[id] => 26
[rating] => 9.55
)
)
)
この配列からすべての評価 >= 0 を抽出し、数字だけを抽出する必要があります。私はこれをうまくやっていたSet::extract('/Rating/rating[rating>-1]', $video)
しかし、これは非推奨であり、今は Hash クラスを使用する必要があることを知りました。そこで、新しい構文を調べて次のように書きました。
Hash::extract($video, 'Rating.{n}.rating[rating>-1]');
これで正しい結果が得られますが、迷惑な警告が表示されます。Warning (4096): Argument 1 passed to Hash::_matches() must be an array, string given, called in E:\www\lib\Cake\Utility\Hash.php on line 131 and defined [CORE\Cake\Utility\Hash.php, line 170]
そこに条件 ( ) がない場合、警告は発生しませんが[rating>-1]
、もちろん、-1 は含まれていますが、これは望ましくありません。ここで何が間違っていますか?どういうわけかこの機能を誤用していますか?非推奨の Set クラスを使用する必要がありますか? または、このアプリを運用モードにすると警告が表示されなくなるため、警告を無視する必要がありますか?