Php 创建一个JSON数组对象-按相同日期分组到一个新数组中?

Php 创建一个JSON数组对象-按相同日期分组到一个新数组中?,php,arrays,json,Php,Arrays,Json,我正在考虑如何按具有相同日期的对象对数组进行分组。 我从MySQL QuerySelectDateTime、ip、Val表中得到以下结果: DateTime ip Val 2017-02-01 08:00:23 10.10.10.1 2 2017-02-01 09:01:23 10.10.10.2 3 2017-02-01 12:02

我正在考虑如何按具有相同日期的对象对数组进行分组。 我从MySQL QuerySelectDateTime、ip、Val表中得到以下结果:

  DateTime                 ip                       Val
2017-02-01 08:00:23       10.10.10.1                2
2017-02-01 09:01:23       10.10.10.2                3
2017-02-01 12:02:23       10.10.10.3                4
2017-02-02 13:03:23       10.10.10.4                5
2017-02-03 15:04:23       10.10.10.5                6
2017-02-03 20:05:23       10.10.10.6                7
从mysql查询结果创建json数组对象,如下所示:

$sql = "select DateTime ,ip,Val from my table order by DateTime ASC ;";
$result = $db->query($sql);
$data = array();
$rowary = array();
$i=0;
while($row = mysqli_fetch_array($result))
 {
    $rowary['DateTime'] = $row['DateTime '] ;
    $rowary['ip'] = $row['ip'] ;
    $rowary['Val'] = $row['Val'] ;
    $data[$i++]=$rowary;
  }
echo '<pre>' . var_export($data, true) . '</pre>';
如何创建在同一日期分组的JSON数组对象?

以asc或dsc顺序从mySQL获取数据,然后执行以下操作:-

     {
    'DateTime' :'2017-02-01 09:01:23',
    'ip'       :'10.10.10.2',
    'Val'      : '2'
     },

     {
    'DateTime' :'2017-02-02 09:01:23',
    'ip'       :'10.10.10.3',
    'Val'      : '3'
    },

     {
    'DateTime' :'2017-02-02 13:03:23',
    'ip'       :'10.10.10.4',
    'Val'      : '4'
    },

     {
    'DateTime' :'2017-02-03 15:04:23',
    'ip'       :'10.10.10.5',
    'Val'      : '5'

    },

     {
    'DateTime' :'2017-02-03 20:05:23',
    'ip'       :'10.10.10.6',
    'Val'      : '6'
    }];

这可以是Javascript

您可以使用下划线JS库进行此引用

你可以这样做

变量a=[ { “日期时间”:“2017-02-01 08:00:23”, ‘ip’:‘10.10.10.1’, “Val”:“1” },

然后用户u.groupBy函数如下

_.groupBya,functionobj{返回新的Dateobj.DateTime.toDateString}


希望它能帮助您

不清楚,问题是什么?对不起,我已经把问题弄清楚了。您能添加预期的输出吗?我已经添加了预期的结果请检查答案Autosh,我已经尝试创建了数组,然后按照您说的做,但仍然无法得到我想要的结果。我在问题中添加了创建数组代码
 [
    [
      {
         "DateTime": "2017-02-01 08:00:23",
         "ip": "10.10.10.1",
         "Val": "2"
      },
      {
         "DateTime": "2017-02-01 09:01:23",
         "ip": "10.10.10.2",
         "Val": "3"
      },
      {
         "DateTime": "2017-02-01 12:02:23",
         "ip": "10.10.10.3",
         "Val": "4"
      }
   ],
   [
     {
        "DateTime": "2017-02-02 13:03:23",
        "ip": "10.10.10.4",
        "Val": "5"
     }
   ],
   [
    {
       "DateTime": "2017-02-03 15:04:23",
       "ip": "10.10.10.5",
       "Val": "6"
    },
    {
       "DateTime": "2017-02-03 20:05:23",
       "ip": "10.10.10.6",
       "Val": "7"
    }
   ]

 ]
$a = array(
    array(
        'DateTime' => '2017-02-01 08:00:23',
        'ip'       => '10.10.10.1',
        'Val'       => '1'
    ),
    array(
        'DateTime' => '2017-02-01 09:01:23',
        'ip'       => '10.10.10.2',
        'Val'       => '2'
    ),
    array(
        'DateTime' => '2017-02-02 09:01:23',
        'ip'       => '10.10.10.3',
        'Val'       => '3'
    ),
    array(
        'DateTime' => '2017-02-02 13:03:23',
        'ip'       => '10.10.10.4',
        'Val'       => '4'
    ),
    array(
        'DateTime' => '2017-02-03 15:04:23',
        'ip'       => '10.10.10.5',
        'Val'       => '5'
    ),
    array(
        'DateTime' => '2017-02-03 20:05:23',
        'ip'       => '10.10.10.6',
        'Val'       => '6'
    ),
);

$FirstDate = date('Y-m-d', strtotime($a[0]['DateTime']));
$output = array();
$i = 0;

foreach($a as $value){

    $currentDate = date('Y-m-d', strtotime($value['DateTime']));

    if($currentDate != $FirstDate){
        $i++;
        $FirstDate = $currentDate;
    }       

    $output[$i][] = $value;

}

var_dump($output);
     {
    'DateTime' :'2017-02-01 09:01:23',
    'ip'       :'10.10.10.2',
    'Val'      : '2'
     },

     {
    'DateTime' :'2017-02-02 09:01:23',
    'ip'       :'10.10.10.3',
    'Val'      : '3'
    },

     {
    'DateTime' :'2017-02-02 13:03:23',
    'ip'       :'10.10.10.4',
    'Val'      : '4'
    },

     {
    'DateTime' :'2017-02-03 15:04:23',
    'ip'       :'10.10.10.5',
    'Val'      : '5'

    },

     {
    'DateTime' :'2017-02-03 20:05:23',
    'ip'       :'10.10.10.6',
    'Val'      : '6'
    }];