シェアする

  • このエントリーをはてなブックマークに追加

[CakePHP]配列をSQLのようにソートする方法

小ネタシリーズです。

CakePHPでデータベースからデータをソートして取得するときには

$results = $this->Model->find("all", array("order" => array(
	"field" => "ASC"
)));

のように書きます。

で、このとき$resultsには

$results = array(
	"0" => array("field" => "value", ...),
	"1" => array("field" => "value", ...),
	"2" => array("field" => "value", ...),
	...
);

このようなデータが入ります。

今回のTipsは、上記のような配列をソートする方法です。

$results = Set::sort($results, "{n}.Model.field", "DESC");

これで、fieldを降順でソートした結果を取得できます。

たとえばモデルで一度取得したデータにapiで取得したデータを加えて、加えた値でソートしたいときなんかに使ってますが、レアケース過ぎますかね?僕は意外とよく使ってます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする