Tôi có một mảng như thế này:Sử dụng lớp Hash CakePHP để trích xuất dữ liệu từ một mảng
Array(
[Rating] => Array(
[0] => Array(
[id] => 4
[rating] => -1
),
[1] => Array(
[id] => 14
[rating] => 9.7
),
[2] => Array(
[id] => 26
[rating] => 9.55
)
)
)
tôi cần phải trích xuất tất cả các đánh giá> = 0 từ mảng này, và chỉ là con số. Tôi đã làm điều này tốt với Set::extract('/Rating/rating[rating>-1]', $video)
Nhưng sau đó tôi đã học được rằng điều này không được chấp nhận và bạn có nghĩa vụ phải sử dụng lớp Hash ngay bây giờ. Vì vậy, tôi nhìn lên cú pháp mới và viết:
Hash::extract($video, 'Rating.{n}.rating[rating>-1]');
mà mang lại cho tôi kết quả chính xác, nhưng nó mang lại một cảnh báo gây phiền nhiễu: 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]
Cảnh báo không xảy ra khi tôi không có điều kiện trong đó (số [rating>-1]
) nhưng tất nhiên bao gồm -1, mà tôi không muốn. Tôi làm gì sai ở đây? Tôi có sử dụng sai chức năng này không? Tôi có nên sử dụng lớp Set không được chấp nhận không? Hoặc tôi nên bỏ qua cảnh báo vì nó sẽ không hiển thị khi tôi đưa ứng dụng này vào chế độ sản xuất?