php - 在保持名称的同时按值中的时间对数组进行排序
问题描述
我有以下数组:数组( [10] => 06:30pm [20] => 04:00pm [30] => 05:15pm )
[]中的数字是id,后面的值是时间。我需要按时间对这个数组进行排序,同时保持这样的 id
数组( [20] => 04:00pm [30] => 05:15pm [10] => 06:30pm )
另请注意,时间也可以是上午或下午。
然后我需要将 [] 中的 id 提取为逗号分隔值。
任何人都可以帮忙吗?
解决方案
试试这个
<?php
$time= ['10' => '06:30pm','20' => '04:00pm', '30' => '05:15am'];
$temp_time=array();
foreach ($time as $key => $value) {
if(sizeof(explode("pm", $value))>1){
$data=explode(":", $value);
$data[0]=(int)$data[0]+12;
$value=$data[0].':'.$data[1];
}else{
$data=explode(":", $value);
if($data[0]=='12'){
$value='00:'.$data[1];
}else{
$value=$data[0].':'.$data[1];
}
}
$temp_time+=[$key => $value];
}
asort($temp_time);
$new_time=array();
foreach ($temp_time as $key => $value) {
$new_time+=[$key => $time[$key]];
}
print_r($new_time);
输出:
Array ( [30] => 05:15am [20] => 04:00pm [10] => 06:30pm )
推荐阅读
- r - 是否有一个 R 函数可以改变森林图中 metaprop 的小数点?
- android - 如何在android中保持居中图标和标签BottomNavigationView
- javascript - 将数字标记映射到基于字母的标记
- apache2 - Apache2 Forbidden 你没有权限访问这个资源但是什么资源
- filter - Ansible 新手并正在寻找正确的过滤器语法
- r - 如何按时间段总结一个小标题?
- paypal - 在没有服务器后端的静态 HTML/JS 网站上完成 PayPal 付款。如何渲染完成的支付页面?
- java - Java 数组列表
没有按要求工作 - qt - 如何向模型中没有的 QML ComboBox 添加额外的项目?
- python - 使用 Python 的 matplotlib 3D API 的轮廓问题