如何在我的for each语句中使用php和li按降序排序?

下面是我的$data数组:

数组([0]=>数组([idx]=>1[id]=>1[mname]=>test1[hname]=>test1[bdate]=>0000-00-00)[1]=>数组([idx]=>2[id]=>1[mname]=>test1[hname]=>test1[bdate]=>0000-00-00)[2]=>数组([idx]=>3[id]=>1[mname]=>test1[hname]=>test1[bdate]=>0000-00-00)[3]=>数组([idx]=>4[id]=>1[mname]=>te1[hname]=>2024-01-01)[4]=>数组([idx]=>5[id]=>1[mname]=>测试1[名称]=>测试1[bdate]=>2024-01-03)[5]=>数组([idx]=>6[id]=>1[mname]=>测试1[名称]=>测试1[bdate]=>2024-01-05)[6]=>数组([idx]=>7[id]=>1[mname]=>测试1[hname]=>2024-01-07)[7]=>数组([idx]=>8[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-09)[8]=>数组([idx]=>9[id]=>1[mname]=>test1[hname]=>test1[bdate]=>0000-00-00)[9]=>数组([IDX]=>10[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-20)[10]=>数组([idx]=>11[id]=>1[mname]=>test1[hname]=>test1[bdate]=>0000-00-00)[11]=>数组([idx]=>12[id]=>1[mname]=>Test1[hname]=>Test1[bdate]=>0000-00-00)[12]=>数组([IDX]=>13[id]=>1[mname]=>Test1[hname]=>Test1[bdate]=>0000-00-00)[13]=>数组([idx]=>14[id]=>1[mname]=>Test1[hname]=>测试1[bdate]=>2024-01-22)[14]=>数组([idx]=>15[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[15]=>数组([idx]=>16[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[16]=>数组([idx]=>17[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[17]=>数组([idx]=>18[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[18]=>数组([IDX]=>19[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[19]=>数组([idx]=>20[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[20]=>数组([idx]=>21[id]=>1[mname]=>Test1[hname]=>Test1[bdate]=>2024-01-22)[21]=>数组([IDX]=>22[id]=>1[mname]=>Test1[hname]=>Test1[bdate]=>2024-01-22)[22]=>数组([IDX]=>23[id]=>1[mname]=>Test1[hname]=>测试1[bdate]=>2024-01-22)[23]=>数组([idx]=>24[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[24]=>数组([idx]=>25[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[25]=>数组([idx]=>26[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[26]=>数组([idx]=>27[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[27]=>数组([IDX]=>28[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[28]=>数组([idx]=>31[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)[29]=>数组([idx]=>32[id]=>1[mname]=>test1[hname]=>test1[bdate]=>2024-01-22)

Code

foreach ($data as $row){
    if($row['bdate'] == '0000-00-00' || isset($printdate[$row['bdate']])){
        continue;
    }
    $printdate[$row['bdate']] = true;
    echo '<li>'.$row['bdate'].'</li>';
}

它显示以下内容.

2024-01-01
2024-01-03
2024-01-05
2024-01-07
2024-01-09
2024-01-20
2024-01-22

但我想展示的是:

2024-01-22
2024-01-20
2024-01-09
2024-01-07
2024-01-05
2024-01-03
2024-01-01

如何使用php和li对每条语句使用降序?

这在PHP中可能吗?或者,如果我使用css来更改它会更好吗?

推荐答案

使用usort()按‘bdate’的降序对$data数组进行排序.然后,可以使用foreach循环迭代排序后的数组并打印‘bdate’值.

usort($data, function($a, $b) {
    return strcmp($b['bdate'], $a['bdate']);
});

$printdate = [];
foreach ($data as $row){
    if($row['bdate'] == '0000-00-00' || isset($printdate[$row['bdate']])){
        continue;
    }
    $printdate[$row['bdate']] = true;
    echo '<li>'.$row['bdate'].'</li>';
}

Php相关问答推荐

try 修改这个PHP代码如果语句在WordPress""

无法添加ProxyClass__setInitialized()上的忽略

SQLSTATE [42S02]:找不到基表或视图:1146 Table eshop. sessions不存在'''

如何在Woocommerce中禁用机器人添加到推车?

模型中的Laravel自定义查询字段

以编程方式更改新订单、已取消订单和失败订单的邮箱WooCommerce通知

在Woocommerce变量产品中的标签附近显示所选属性选项名称

仅在WooCommerce管理订单视图上显示订单项自定义元数据

在WooCommerce管理订单列表中显示项目总权重

让所有具有相同名称的产品在WooCommerce中更改价格

Codeigniter 3中SMTP.office 365.com的截断问题

如何在laravel中使用script type= text/html/script

如何在laravel中添加延迟?

Laravel Http::get not working on controller

如何在PHP中根据会话将用户重定向到不同的页面?

WooCommerce 以编程方式添加的费用不会持续存在

我的功能以舒适的方式显示数组 struct

用于检测此模式的正则表达式:something;something=something,something=something... 未知次数

Laravel Docker 几个数据库

升级到 PHP 8.2:ksort 和 krsort 更改