どうしてもPHP側でデータの並び替えをしないといけなかったので、usortを使ってみた。
やりたいこと
メールアドレスを昇順かつ空のときには末尾に持ってくる。
やってみた
usortで下記のソースを書くと、期待通りに並べ替えられた。
$data = array(
'1' => '',
'2' => 'sample@example.com',
'3' => 'hoge@example.com',
);
usort($data, function ($left, $right) {
$leftHoge = mb_strtolower($left['mail']); // 小文字に統一
$rightHoge = mb_strtolower($right['mail']);
if (empty($leftHoge)) {
return 1;
}
if (empty($rightHoge)) {
return -1;
}
if ($leftHoge < $rightHoge) {
return -1;
} else if ($leftHoge > $rightHoge) {
return 1;
}
});
var_dump($data);
// $data = array(
'1' => 'hoge@example.com',
'2' => 'sample@example.com',
'3' => '',
);