我有阵列:
$array = array(array('2012-12-12', 'vvv'), array('2012-12-14', 'df'),array('2012-12-10', 'vvv'),array('2012-12-11', 'vvv'));
Array
(
[0] => Array
(
[0] => 2012-12-12
[1] => vvv
)
[1] => Array
(
[0] => 2012-12-14
[1] => df
)
[2] => Array
(
[0] => 2012-12-10
[1] => vvv
)
[3] => Array
(
[0] => 2012-12-11
[1] => vvv
)
)
可以用日期DESC对它进行排序吗?这个例子应该是:
$array[1] //2012-12-14
$array[0] //2012-12-12
$array[3] //2012-12-11
$array[2] //2012-12-10
对我来说,最好的方法是使用PHP的嵌入式函数,但是如何? :)
答案 0 :(得分:3)
您可以将usort
与自定义功能配合使用。如果您使用的是PHP< 5.3你需要一个命名函数,而不是像我一样,需要一个匿名函数。
$array = array(
array('2012-12-12', 'vvv'),
array('2013-12-14', 'df'),
array('2012-12-14', 'df'),
array('2012-12-10', 'vvv'),
array('2012-12-11', 'vvv')
);
usort($array, function($a, $b) {
if ($a[0] == $b[0]) return 0;
return ($a > $b) ? -1 : 1;
});
print_r($array);
答案 1 :(得分:3)
您应该可以使用usort
usort( $array, 'sortFunction' );
function sortFunction( $a, $b ) {
if( $a[0] == $b[0] )
return 0;
return ( $a[0] > $b[0] ? return -1 : 1 );
}
答案 2 :(得分:2)
您可以使用array_multisort()
:
foreach ($array as $key => $row) {
$dates[$key] = $row[0];
}
array_multisort($dates, SORT_DESC, $array);
首先,您将所有日期都放在一个新数组中。然后,array_multisort()
将按照与第一个数组($array
)
$dates
)进行排序