我有一个这样的数组。
[Badi Assad] => Array
(
[last_name] => Assad
[first_name] => Badi
[artist_name] =>
[asterick] => *
[slug] => badiassad
)
[Ben Taylor] => Array
(
[last_name] => Taylor
[first_name] => Ben
[artist_name] => Ben Taylor
[asterick] => *
[slug] => bentaylor
)
[Beverly] => Array
(
[last_name] => Hills
[first_name] => Beverly
[artist_name] => Beverly
[asterick] =>
[slug] => Eedih
)
[Bruce Cockburn] => Array
(
[last_name] => Cockburn
[first_name] => Bruce
[artist_name] => Bruce Cockburn
[asterick] => *
[slug] => brucecockburn
)
[Bohème] => Array
(
[last_name] =>
[first_name] => Cassidy
[artist_name] => Bohème
[asterick] => *
[slug] => cassidy
)
我将如何排序,所以它将按照姓氏和艺术家姓名的顺序排列,以便姓氏胜过艺术家姓名,除非它是空的。
结果应该是这样的。
[Badi Assad] => Array
(
[last_name] => Assad
[first_name] => Badi
[artist_name] =>
[asterick] => *
[slug] => badiassad
)
[Bohème] => Array
(
[last_name] =>
[first_name] => Cassidy
[artist_name] => Bohème
[asterick] => *
[slug] => cassidy
)
[Bruce Cockburn] => Array
(
[last_name] => Cockburn
[first_name] => Bruce
[artist_name] => Bruce Cockburn
[asterick] => *
[slug] => brucecockburn
)
[Beverly] => Array
(
[last_name] => Hills
[first_name] => Beverly
[artist_name] => Beverly
[asterick] =>
[slug] => Eedih
)
[Ben Taylor] => Array
(
[last_name] => Taylor
[first_name] => Ben
[artist_name] => Ben Taylor
[asterick] => *
[slug] => bentaylor
)
我目前正在尝试这个。
$newartists = array();
foreach($users as $k => $v)
{
$name = (strlen($v['artist_name']) > 0) ? $v['artist_name'] : $v['first_name'].' '.$v['last_name'];
$newartists[$name]['last_name'] = $v['last_name'];
$newartists[$name]['first_name'] = $v['first_name'];
$newartists[$name]['artist_name'] = $v['artist_name'];
$newartists[$name]['asterick'] = $ask;
$newartists[$name]['slug'] = $v['slug'];
}
$sort = array();
foreach($newartists as $k=>$v) {
$sort['artist_name'][$k] = $v['artist_name'];
$sort['last_name'][$k] = $v['last_name'];
}
array_multisort( $sort['last_name'], SORT_ASC,$sort['artist_name'], SORT_ASC, $newartists);
谢谢!