[英]PHP: Sorting a multidimensional array by an attribute
我有一個多維數組,如下所示。 我想基於[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
$a
負數 $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']);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.