Php 基于月份过滤数据

Php 基于月份过滤数据,php,arrays,Php,Arrays,如何筛选在创建的在5月份的条目 $data = [ (object) [ 'name' => 'Gadget', 'created_at' => '2017-05-01' ], (object) [ 'name' => 'Tiddlywink', 'created_at' => '2018-03-01' ], (object) [ 'name' =>

如何筛选在创建的在5月份的条目

$data = [
    (object) [
        'name' => 'Gadget',
        'created_at' => '2017-05-01'
    ],
    (object) [
        'name' => 'Tiddlywink',
        'created_at' => '2018-03-01'
    ],
    (object) [
        'name' => 'Gizmo',
        'created_at' => '2018-05-27'
    ]
];

我要说的是循环遍历创建的_at值,并挑出月份---


5是你想要的一年中的月份

我要说的是通过创建的_at值进行循环,并挑出月份---

5是你想要的一年中的月份

这应该有效:

$new_array = [];
foreach($data as $v){
    $date = date_parse($v->created_at);

    if($date['month'] == 5){
        $new_array[] = $v;
    }
}
结果:

array(2) {
  [0]=>
  object(stdClass)#1 (2) {
    ["name"]=>
    string(6) "Gadget"
    ["created_at"]=>
    string(10) "2017-05-01"
  }
  [1]=>
  object(stdClass)#3 (2) {
    ["name"]=>
    string(5) "Gizmo"
    ["created_at"]=>
    string(10) "2018-05-27"
  }
}
日期解析()的作用:()

演示:

这应该可以:

$new_array = [];
foreach($data as $v){
    $date = date_parse($v->created_at);

    if($date['month'] == 5){
        $new_array[] = $v;
    }
}
结果:

array(2) {
  [0]=>
  object(stdClass)#1 (2) {
    ["name"]=>
    string(6) "Gadget"
    ["created_at"]=>
    string(10) "2017-05-01"
  }
  [1]=>
  object(stdClass)#3 (2) {
    ["name"]=>
    string(5) "Gizmo"
    ["created_at"]=>
    string(10) "2018-05-27"
  }
}
日期解析()的作用:()

演示:

使用
array\u filter()
,检查在
属性创建的
是否为5月份(第5个月)。我们通过使用DateTime对象,并将
格式(“m”)
与5进行比较(
m
以1-12的数值给出月份)

array\u filter()
将仅在返回值为true时保留元素

$may_values = array_filter($data, function($obj) {
    $date = new DateTime($obj->created_at);
    return $date->format("m") == 5;
});
  • 现场演示
使用
array\u filter()
,并检查在
属性创建的
是否为5月份(第5个月)。我们通过使用DateTime对象,并将
格式(“m”)
与5进行比较(
m
以1-12的数值给出月份)

array\u filter()
将仅在返回值为true时保留元素

$may_values = array_filter($data, function($obj) {
    $date = new DateTime($obj->created_at);
    return $date->format("m") == 5;
});
  • 现场演示

欢迎来到SO!你需要展示你尝试过的东西等,以便人们提供帮助。你也应该读“我该如何问一个好问题”欢迎来到SO!你需要展示你尝试过的东西等,以便人们提供帮助。此外,如果($checkVal=5)
正在赋值5,而不是与之比较,则应阅读“如何提问”
如果($checkVal=5)正在赋值5,而不是与之比较。