【发布时间】:2012-06-28 08:05:15
【问题描述】:
我确信这已经在某个地方得到了回答,但我找不到这个确切情况的答案...... 我知道我可以使用 usort 功能,但无法弄清楚做我想做的事情的逻辑,尽管它相对简单
我正在生成一个动态区域:
$details[$pageYear][$pageMonth][] = array(
"id" => $page['id'],
"title" => $page['title']
);
我希望数组 $details 最终按年降序排序,然后按月排序
月份值是字符串(一月、二月、三月等...而不是数字),这似乎是我的主要问题(如何按实际顺序而不是字母顺序对月份“字符串”进行排序)
任何帮助将不胜感激 抱歉,如果结果是重复的
【问题讨论】:
-
你可以使用 strtotime() 将名称转换为数值吗?
-
您的数据是从数据库中检索的吗?如果是这样,按照您描述的方式排列数据的最简单方法是在 SQL 查询中使用 ORDER BY 修饰符。
-
array_multisort 可能对你有用。
-
是的,但我想对年份降序和月份升序排序..它们在数据库的同一列中,我现在所有数据都在升序,但我想对年份进行排序从最新到最旧的 array_multisort 将年份重新索引为 0,1,2 而不是保留原始值:/
-
好的,我最终使用了 krsort,因为我已经对所有内容进行了排序并且需要将它们反转...不知道为什么我以前没有想到这一点,谢谢大家!
标签: php arrays date sorting multidimensional-array