按日期对多维数组进行排序
对多维数组中的数据进行排序可能是一项常见任务,尤其是在使用带时间戳的字段组织信息时。本问题探讨如何对记录数组进行排序,其中每条记录都包含格式为“Y-m-d H:i:s”的“日期时间”字段。
解决方案
提供的解决方案采用 usort() 函数,该函数将比较函数作为其第二个参数。在本例中,定义了比较函数 date_compare():
function date_compare($a, $b) { $t1 = strtotime($a['datetime']); $t2 = strtotime($b['datetime']); return $t1 - $t2; }
该函数从“datetime”字段中提取 UNIX 时间戳并返回它们的差异。负值表示第一个参数在时间上较早,而正值表示第二个参数在时间上较早。
通过将此比较函数传递给 usort(),数组将根据“升序排序” datetime”字段:
usort($array, 'date_compare');
改进方法
使用时数组的数组,澄清术语很重要。各个子数组称为“记录”,整个集合是一个“记录数组”。
Usort 的角色
usort() 提供有价值的排序机制。它一次获取两条记录并调用它们的比较函数。比较函数的返回值确定 usort() 如何对元素重新排序。当值为负数时,第一条记录放在第二条记录之前;当为正时,第二个记录先于第一个记录;当为零时,它们保持相同的顺序。
应用解决方案
在这种特定情况下,比较函数 date_compare() 确定记录的时间顺序。如果第一条记录的时间戳较早,则返回负值,导致它被放置在第二条记录之前。同样,正返回值表示第二条记录较早,零值表示时间戳相同。 usort() 使用这些比较来重新排列数组,以便记录按时间顺序排序。
以上是如何在 PHP 中按日期对多维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!