CakePHPのHashのマッチャーに複数条件設定する方法
CakePHPのHashってめっちゃ便利ですよね。
foreachとかforが減ってソースがすっきりするので大好きです。
なかでもextractを良く使うんですが、だいたい条件指定することがほとんどです。
ドキュメントには [id=2] とか [id!=2] 程度のことしか書いて無くて、でも複数条件で検索したいことって結構多いんですよね。
どうしても複数条件を使いたかったので、ソース調べたら意外と簡単でした。
例えば
[Students] => Array ( [0] => Array ( [age] => 10 [sex] => 1 [name] => taro ), [1] => Array ( [age] => 10 [sex] => 2 [name] => hanako ) )
こんな配列から10才の男の子だけ取り出したいみたいな場合
Hash::extract( $students, '{n}[age=10][sex=1]' )
おわり。