Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中按日期时间对数组进行分组?_Php_Arrays_Datetime - Fatal编程技术网

如何在PHP中按日期时间对数组进行分组?

如何在PHP中按日期时间对数组进行分组?,php,arrays,datetime,Php,Arrays,Datetime,我有PHP数组作为某个函数的日志,我正在为它准备日期图表 Array ( [0] => 03-08-15 12:07:16 PM [1] => 03-08-15 01:54:16 PM [2] => 03-08-15 02:18:35 PM [3] => 03-08-15 06:32:17 PM [4] => 04-08-15 11:40:25 AM [5] => 04-08-15 01:47:23 PM

我有PHP数组作为某个函数的日志,我正在为它准备日期图表

Array
(
    [0] => 03-08-15 12:07:16 PM
    [1] => 03-08-15 01:54:16 PM
    [2] => 03-08-15 02:18:35 PM
    [3] => 03-08-15 06:32:17 PM
    [4] => 04-08-15 11:40:25 AM
    [5] => 04-08-15 01:47:23 PM
    [6] => 04-08-15 02:13:31 PM
    [7] => 04-08-15 05:46:10 PM
    [8] => 05-08-15 11:36:20 AM
    [9] => 05-08-15 01:43:04 PM
    [10] => 05-08-15 02:25:14 PM
    [11] => 05-08-15 06:06:24 PM
    [12] => 06-08-15 11:25:31 AM
    [13] => 06-08-15 01:52:32 PM
    ... and so on
)
我想按日期重新排序,其中日期和值的键是内部数组,该数组保存该特定日期的所有条目

Array
(
     [03-08-15] => Array
                   (
                        [0] => 12:07:16 PM
                        [1] => 01:54:16 PM
                        [2] => 02:18:35 PM
                        [3] => 06:32:17 PM
                   )
     [04-08-15] => Array
                   (
                        [0] => 11:40:25 AM
                        [1] => 01:47:23 PM
                        [2] => 02:13:31 PM
                        [3] => 05:46:10 PM
                   )
     [05-08-15] => Array
                   (
                        [0] => 11:40:25 AM
                        [1] => 01:47:23 PM
                        .....
                   )
    and so on...
)
到目前为止,我已经试过了

$tempArray = array();
foreach ($allEntries as $entry) {
    $date = new DateTime($entry);
    $tempArray[$date->format('m-d-y')] = $date->format('h:i:s A');
}
print_r($tempArray);
到目前为止,我已经试过了

如果距离足够近,您将错过
[]

$dates = [
    '03-08-15 12:07:16 PM',
    '03-08-15 01:54:16 PM',
    '03-08-15 02:18:35 PM',
    '03-08-15 06:32:17 PM',
    '04-08-15 11:40:25 AM',
    '04-08-15 01:47:23 PM',
    '04-08-15 02:13:31 PM',
    '04-08-15 05:46:10 PM',
    '05-08-15 11:36:20 AM',
    '05-08-15 01:43:04 PM',
    '05-08-15 02:25:14 PM',
    '05-08-15 06:06:24 PM',
    '06-08-15 11:25:31 AM',
    '06-08-15 01:52:32 PM',
];

$newDates = [];
foreach ($dates as $date) {
    $dataTime = DateTime::createFromFormat('d-m-y H:i:s A', $date);
    $newDates[$dataTime->format('d-m-y')][] = $dataTime->format('H:i:s A');
}

var_dump($newDates);

.

您可以分享您尝试过的代码吗@ShadabLoop遍历数组,并将条目拆分为日期和时间。检查输出数组是否有日期条目,否则添加一个包含空数组的条目。然后将时间推到子数组上。@SubinThomas,现在检查。足够近,
$tempArray[$date->format('m-d-y')][
@Federico
$tempArray[$date->format('m-d-y')]=这部分应该是子数组