// array_multisort(): $data を最後のパラメータとして渡し、同じキーでソートする。
$data[] = ['id' => 1, 'sort_1' => 12, 'sort_2' => 2, 'sort_3' => 'gamma', 'sort_4' => 'Delta'];
$data[] = ['id' => 2, 'sort_1' => 34, 'sort_2' => 3, 'sort_3' => 'Gamma', 'sort_4' => 'beta'];
$data[] = ['id' => 3, 'sort_1' => 56, 'sort_2' => 5, 'sort_3' => 'Beta', 'sort_4' => 'Beta'];
$data[] = ['id' => 4, 'sort_1' => 56, 'sort_2' => 4, 'sort_3' => 'beta', 'sort_4' => 'alpha'];
$data[] = ['id' => 5, 'sort_1' => 34, 'sort_2' => 1, 'sort_3' => 'Alpha', 'sort_4' => 'Epsilon'];
$data[] = ['id' => 6, 'sort_1' => 12, 'sort_2' => 6, 'sort_3' => 'alpha', 'sort_4' => 'Zeta'];
// 列方向の配列を得る
foreach ($data as $key => $row) {
$sort_1[$key] = $row['sort_1'];
$sort_2[$key] = $row['sort_2'];
$sort_3[$key] = $row['sort_3'];
$sort_4[$key] = $row['sort_4'];
}
// データを sort_1 の降順、sort_2 の昇順にソートする。
array_multisort($sort_1, SORT_DESC, $sort_2, SORT_ASC, $data);
print_r("<pre>");
print_r($data);
print_r("</pre>");
// データを sort_3 大文字ではじまる昇順にソートする
array_multisort($sort_3, SORT_ASC, SORT_STRING, $data);
print_r("<pre>");
print_r($data);
print_r("</pre>");
// データを sort_4 小文字で始まる昇順にソートする
array_multisort($$sort_4, SORT_ASC, SORT_REGULAR, $data);
print_r("<pre>");
print_r($data);
print_r("</pre>");