CakePHPでよく現れる配列 
$array = array (
	0 => array (
		'Model' => array (
			'field1' => 'value1',
			'field2' => 'value2',
			,
            ,
		)
	),
	1 => array (
		'Model' => array (
			'field1' => 'value1',
			'field2' => 'value2',
			,
            ,
		)
	),
    ,
    ,
)

この配列の任意のフィールドでソートする方法。
Model->findなどでとってきた配列を後からソートしたい場合に使用する。

 

具体例でやってみる。

UserModel.php(fieldはid, mail_address, created, modified )を使用するとして、まずは定番の配列取得。
$users= $this->User->find('all');
するとこんな配列を取得。
$users = array (
        0 => array (
                'User' => array (
                        'id' => '1',
                        'mail_address' => 'hoge1@hoge.hoge',
                        'created' => '2015-05-21 10:00:00',
                        'modified' => '2015-05-30 10:00:00'
                )
        ),
        1 => array (
                'User' => array (
                        'id' => '2',
                        'mail_address' => 'hoge2@hoge.hoge',
                        'created' => '2015-05-22 10:00:00',
                        'modified' => '2015-06-01 10:00:00'
                )
        ),
)

これをmodified、つまり修正日時の新しい順にソートしたいとする。
そのときには
$result = Set::sort($users, '{n}.User.modified', 'desc');
で完了。
{n}.User.modifiedなんて普段あまり見かけない形だけど、この形はこのままコピペ。
結果は
$result = array (
        0 => array (
                'User' => array (
                        'id' => '2',
                        'mail_address' => 'hoge2@hoge.hoge',
                        'created' => '2015-05-22 10:00:00',
                        'modified' => '2015-06-01 10:00:00'
                )
        ),
        1 => array (
                'User' => array (
                        'id' => '1',
                        'mail_address' => 'hoge1@hoge.hoge',
                        'created' => '2015-05-21 10:00:00',
                        'modified' => '2015-05-30 10:00:00'
                )
        ),        
)

となる。
基本的な形は
Set::sort($array, '{n}.Model.field', 'asc or desc');
のようだ。