首页 > 解决方案 > 分组数组php和计数

问题描述

$data = [
     [
       id: '1',
       date_created: '2021-11-14T23:22:53.558225+00:00',
     ],
     [
       id: '2',
       date_created: '2021-11-14T23:22:00.558225+00:00',
     ],
     [
       id: '3',
       date_created: '2021-11-15T11:22:53.558225+00:00',
     ],
]

帮助获取一个新数组,需要按日期分组,并从第一天开始计算结果数组的数量。这里是一个新数组的例子

$new_array = [0,0,0,0,0,0,0,0,0,0,0,0,0,2,1]

标签: php

解决方案


我想它可以用一个循环来完成

<?php 
$data = [
     [
       'id' => '1',
       'date_created' => '2021-11-14T23:22:53.558225+00:00',
     ],
     [
       'id' => '2',
       'date_created' => '2021-11-14T23:22:00.558225+00:00',
     ],
     [
       'id' => '3',
       'date_created' => '2021-11-15T11:22:53.558225+00:00',
     ],
];

$res = array();
foreach($data as $row) {
    if(!isset($res[gmdate('d', strtotime($row['date_created']))]))
        $res[gmdate('d', strtotime($row['date_created']))] = 0;
    // array index, (current date of month) gmdate('d', strtotime($row['date_created'])) 
    $res[gmdate('d', strtotime($row['date_created']))]++;
}
print_r($res);

推荐阅读