我有一个如下所示的数组:
{ [0]=> array(4) { "20" ["date"]=> string(10) "2013-01-25" ["content"]=> string(3) "ref" }
和[1],[2] ......看起来一样。
我想知道如何订购我的数组,所以[0]是最新的日期。更改为时间戳不是意见。有什么想法吗?
答案 0 :(得分:1)
在您的查询中使用order by。
ORDER BY date
答案 1 :(得分:1)
您可以使用usort()并编写自己的比较函数(在“对象”之间进行比较的函数 - 内部数组)。
由于日期是以支持简单字符串比较的方式编写的,因此您可以执行以下操作:
<?php
function compare($arr1, $arr2) {
$date1 = $arr1[0];
$date2 = $arr2[0];
if($date1 > $date2){
$ans = 1;
}
else if($date2 > $date1){
$ans = -1;
}
else{
$ans = 0;
}
return $ans;
}
$arr = array(array("date"=>"2013-01-25", "content"=>"ref"),
array("date"=>"2013-02-25", "content"=>"ref2"),
array("date"=>"2013-03-25", "content"=>"ref3")
);
usort($arr, "compare");
print_r($arr);
?>
<强>输出:强>
Array
(
[0] => Array
(
[date] => 2013-03-25
[content] => ref3
)
[1] => Array
(
[date] => 2013-02-25
[content] => ref2
)
[2] => Array
(
[date] => 2013-01-25
[content] => ref
)
)
答案 2 :(得分:0)
试试这个:这会对多维数组进行排序
$sort = array();
foreach($your_array as $k=>$v) {
$sort['date'][$k] = $v['date'];
}
array_multisort($sort['date'], SORT_DESC, $your_array);
echo "<pre>";
print_r($your_array);