我有一个这样的数组:
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 类吗?还是我应该忽略警告,因为一旦我将此应用程序置于生产模式,它就不会出现?