我在数组中排序日期有问题。
$data[0]["Venue"];
$data[0]["VenueConfigurationID"];
$data[0]["VenueID"];
$data[0]["TimeStamp"];
$data[2]["Venue"];
$data[2]["VenueConfigurationID"];
$data[2]["VenueID"];
$data[2]["TimeStamp"];
$data[3]["Venue"];
$data[3]["VenueConfigurationID"];
$data[3]["VenueID"];
$data[3]["TimeStamp"];
我想根据TimeStamp值对这些数组进行排序。
您可以使用我为另一个问题提供的解决方案(参见make_comparer
函数的代码):
usort($data, make_comparer('TimeStamp'));
这将允许您根据任意数量的标准对数据进行排序,并且您可以通过简单地更改数组项的顺序或值来轻松更改标准。
您可能正在寻找usort
。使用此函数,您可以指定一个比较函数,该函数将用于比较两个元素。因此,您可以写
function cmp($a, $b)
{
if ($a['timestamp'] == $b['timestamp']) {
return 0;
}
return ($a['timestamp'] < $b['timestamp']) ? -1 : 1;
}
,然后:
usort($data, "cmp");
我认为你可以这样做:
function cmp($a, $b){
$a_t = strtotime( $a['TimeStamp'] ) ;
$b_t = strtotime( $b['TimeStamp'] ) ;
if ($a_t == $b_t) {
return 0;
}
return ($a_t < $b_t) ? -1 : 1;
}
usort($data,'cmp');
希望能成功
这里有很多正确的答案,但我通常更喜欢使用usort
与匿名函数:
usort($data, function($a, $b) {
return $a['timestamp'] - $b['timestamp'];
});
PHP≥4.0.1
usort($data, create_function('$a, $b',
'return $a["timestamp"] - $b["timestamp"];'
));
使用array_multisort函数:-
<?php
// Obtain a list of columns
foreach ($data as $key => $row) {
$timestamp[$key] = $row['TimeStamp'];
}
// Sort the data with timestamp descending
array_multisort($timestamp, SORT_DESC, $data);
?>