php - 从数组中删除过去的日期
问题描述
我有以下数组,其中包含来自不同年份的不同混合日期
Array
(
[0] => 2016-05-18
[1] => 2016-06-18
[2] => 2016-08-13
[3] => 2016-09-03
[4] => 2016-10-08
[5] => 2016-08-06
[6] => 2016-09-30
[7] => 2016-09-10
[8] => 2016-07-09
[9] => 2016-06-13
[10] => 2016-06-15
[11] => 2016-07-30
[12] => 2016-08-27
[13] => 2016-07-02
[14] => 2016-11-01
[15] => 2016-09-18
[16] => 2016-11-06
[17] => 2016-11-07
[18] => 2017-06-17
[19] => 2017-06-22
[20] => 2017-06-21
[21] => 2017-10-01
[22] => 2017-07-08
[23] => 2017-05-27
[24] => 2017-06-06
[25] => 2017-09-09
[26] => 2017-04-16
[27] => 2017-09-16
[28] => 2017-07-29
[29] => 2017-08-05
[30] => 2017-09-03
[31] => 2017-06-24
[32] => 2017-08-26
[33] => 2017-07-22
[34] => 2018-05-28
[35] => 2018-06-09
[36] => 2017-10-16
[37] => 2017-10-28
[38] => 2017-10-08
[39] => 2017-11-04
[40] => 2018-06-20
[41] => 2018-08-05
[42] => 2018-09-03
[43] => 2018-06-16
[44] => 2018-03-31
[45] => 2019-05-25
[46] => 2021-05-25
[47] => 2021-05-26
[48] => 2021-05-27
)
我想删除早于 2021 年的所有日期,这样我的新数组将只包含属于当年 2021 年的日期。如何过滤新数组以使 2021 年之前的所有日期都消失?
Array
(
[0] => 2021-05-25
[1] => 2021-05-26
[2] => 2021-05-27
)
解决方案
您可以创建一个循环遍历数组的函数,并检查字符串是否带有2021星号,如果不是,则删除该元素。
对于 php 8,您可以使用函数:
str_starts_with(string $haystack, string $needle): bool
例如:
foreach($array as $key => $val){
if(!str_starts_with('2021', $val)){
unset($array[$key]);
}
}
对于以前的 php 版本,您可以使用strpos
示例:
foreach($array as $key => $val){
if (!strpos($val, '2021') == 0) {
unset($array[$key]);
}
}
推荐阅读
- html - 我怎样才能降低导航栏的高度
- html - 如何在模板引擎中引用 HTML 元标记?
- javascript - 谷歌浏览器扩展程序可以自行删除,如何删除?
- javascript - JQuery:OnClick 添加新的变量堆栈而不是覆盖值
- php - 本地主机空白页 PHP
- r - 根据其他/以前的列名设置列名,可能使用 apply() 或 for 循环
- android - 为 B4A 生成脱糖库
- bash - 从 Lambda 函数在 EC2 实例中执行 bash 脚本
- azure - 如何在 Azure 专用 SQL 池/Azure Synapse 中查找物化视图的大小(以 MB/GB 为单位)
- html - 对齐项目中心在表格行上无法正常工作?