我得到了如下所示的多维数组。我想基于[date]
属性对第二级数组进行排序。我相信我可以使用array_multisort,但我不确定如何进行。
我的数组在变量$presentations
Array
(
[0] => Array
(
[date] => 20111104
[name] => Name of Presentation
)
[1] => Array
(
[date] => 20111118
[name] => sadf
)
[2] => Array
(
[date] => 20100427
[name] => older one
)
[3] => Array
(
[date] => 20101213
[name] => Another one from 2010
)
[4] => Array
(
[date] => 20110719
[name] => sdf
)
[5] => Array
(
[date] => 20110614
[name] => Sixth one
)
)
根据具体情况,usort
回调应该返回3种类型的值:
- 参数
$a
小于$b
时为负数 - 参数
$b
小于$a
时为正数 - 如果
$a
和$b
都等于,则为零
usort($presentations, function($a, $b)
{
if($a['date'] == $b['date'])
{
return 0;
}
return $a['date'] < $b['date'] ? -1 : 1;
});
您可以使用usort()
应用自定义比较函数。
usort($presentations,
function ($left, $right) {
return $left['date'] - $right['date'];
});
由于类型杂耍,这里是PHP中与整数一起工作的字符串实现:
usort($presentations, function($a, $b) {
return strcmp($a['date'], $b['date']);
});