Tengo una matriz de esta manera:El uso de la clase Hash de CakePHP para extraer datos de una matriz
Array(
[Rating] => Array(
[0] => Array(
[id] => 4
[rating] => -1
),
[1] => Array(
[id] => 14
[rating] => 9.7
),
[2] => Array(
[id] => 26
[rating] => 9.55
)
)
)
tengo que extraer todas las clasificaciones> = 0 A partir de esta matriz, y sólo los números. Estaba haciendo esto bien con Set::extract('/Rating/rating[rating>-1]', $video)
Pero luego me enteré de que esto está en desuso y se supone que debes usar la clase Hash ahora. Así que busqué la nueva sintaxis y escribió:
Hash::extract($video, 'Rating.{n}.rating[rating>-1]');
que me da el resultado correcto, pero da una advertencia molesto: 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]
La advertencia no se produce cuando no tengo la condición allí (el [rating>-1]
) pero por supuesto incluye el -1, que no quiero. ¿Qué estoy haciendo mal aquí? ¿Estoy haciendo mal uso de esta función de alguna manera? ¿Debo usar la clase desaprobada Set? ¿O debería simplemente ignorar la advertencia porque no se mostrará una vez que coloque esta aplicación en modo de producción?