ich ein Array wie diese:CakePHPs Hash-Klasse Mit den Daten aus einem Array zu extrahieren
Array(
[Rating] => Array(
[0] => Array(
[id] => 4
[rating] => -1
),
[1] => Array(
[id] => 14
[rating] => 9.7
),
[2] => Array(
[id] => 26
[rating] => 9.55
)
)
)
Ich brauche alle Bewertungen zu extrahieren> = 0 aus dieser Reihe, und genau die Zahlen. Ich machte das gut mit Set::extract('/Rating/rating[rating>-1]', $video)
Aber ich habe dann gelernt, dass dies veraltet ist und Sie jetzt die Hash-Klasse verwenden sollen. So sah ich die neue Syntax und schrieb:
Hash::extract($video, 'Rating.{n}.rating[rating>-1]');
, die mir das richtige Ergebnis gibt, aber es gibt eine lästige Warnung: 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]
Die Warnung tritt nicht auf, wenn ich nicht die Bedingung drin (die [rating>-1]
) aber natürlich gehören die -1 dazu, was ich nicht will. Was mache ich hier falsch? Verwechsle ich diese Funktion irgendwie? Soll ich nur die veraltete Klasse Set verwenden? Oder sollte ich die Warnung ignorieren, weil sie nicht angezeigt wird, sobald ich diese App in den Produktionsmodus versetzt habe?