データが配列に入っている時で並び替えを行い時があります。

今回はただの配列ではなく、多次元配列の場合の例を紹介します。


配列が空かチェックを行い、降順でソートしています。

昇順でソートする場合はSORT_ASCを使用します。


またオプションでソートする項目が文字列なのか数字なのか指定できます。

$eyears, SORT_ASC, SORT_STRING

この場合は文字列です。

数字の場合はSORT_NUMERICを使用します。


if(!empty($res[data])){
foreach($res[data] as $key => $row){
$byears[$key] = $row["byear"];
$eyears[$key] = $row["eyear"];
}
array_multisort($byears,SORT_DESC,$eyears,SORT_DESC,$res[data]);
}

order句を使用する
昇順の場合は指定なしで、降順の場合はSESCを指定する。


昇順 'order' => array('Gallery.modified')
降順 'order' => array('Gallery.modified' => 'DESC')

$this->paginate = array(
'conditions' => array('User.del' => 0, 'User.state' => 1, 'User.lcategory_id' => $category),
'group' => array('Gallery.user_id'),
'order' => array('Gallery.modified' => 'DESC'),
'limit' => 50
);

#Select BOX
echo $form->input('language_id', array(
'type'=> 'redio',
'label' => 'Language',
'legend' => false,
'separator' => '<label></label>',
'class' => 'float_left',
'options'=> array(
'1'=>'Japanese',
'2'=>'South Korean',
'3'=>'Chinese',
'4'=>'French'
)
))."\n";

#Radio BOX
echo $form->input('language_id', array(
'type'=> 'radio',
'label' => 'Language',
'legend' => false,
'separator' => '<BR>',
'class' => 'radio_m',
'options'=> array(
'1'=>'Japanese',
'2'=>'South Korean',
'3'=>'Chinese',
'4'=>'French'
)
))."\n";

separatorを設定しないと、RADIOボックスが横につながってしまう。
またclassを使用してボタンの間隔を調節しないと、テキストとずれてしまう。

class
input.radio_m {
vertical-align:0.5em;
}