Php 给定数组中的生日在输出中排序错误

Php 给定数组中的生日在输出中排序错误,php,html,Php,Html,我有一个文件,从数据库中读取生日,并为用户显示即将到来的生日。但排序似乎完全错了,有人能告诉我哪里错了吗?它只显示日和月,似乎是按天而不是按月排序 我尝试了多种排序选项,但都做不好 usort函数是一个正确的测试,但它什么也不做 if($birthdays){ 回声“”; foreach($生日作为$项目){ $item->birthdate=str_replace(“/”、“-”、$item->birthdate); $time=strottime($item->birthdate); $ti

我有一个文件,从数据库中读取生日,并为用户显示即将到来的生日。但排序似乎完全错了,有人能告诉我哪里错了吗?它只显示日和月,似乎是按天而不是按月排序

我尝试了多种排序选项,但都做不好

usort函数是一个正确的测试,但它什么也不做

if($birthdays){
回声“
    ”; foreach($生日作为$项目){ $item->birthdate=str_replace(“/”、“-”、$item->birthdate); $time=strottime($item->birthdate); $time=日期('d.m',$time); usort($item->生日,函数($a,$b){ 返回substr($b,-3)-substr($a,-3); }); $date=“{$time}”; 回声“; } 回声“
”; }
输出如下: 27.07 25.07 24.07 18.08 16.11

但应该是这样的: 24.07 25.07 27.07 18.08
16.11

将月份放在日期之前,您可以正常排序。1月5日为0105,10月25日为1025

$arr = ["0727", "0725", "0724", "0818", "1116"];

sort($arr);
var_dump($arr);
给出:

array(5) {
  [0]=>
  string(4) "0724"
  [1]=>
  string(4) "0725"
  [2]=>
  string(4) "0727"
  [3]=>
  string(4) "0818"
  [4]=>
  string(4) "1116"
}

不需要花哨的排序

“它只显示日和月”-当然,这就是
$time=date('d.m',$time)
中的
d.m
部分;的意思是……是的,这更像是一个不必要的提示,很抱歉我无法编辑它。