2015-09-27 66 views
-1

我有一个PHP阵列是这样的: Pastebin Array Exemple分区阵列分成多个阵列,由小时

每个数组元素具有TIME键。我想用小时分割这个数组。

实施例:

  • 8H之间用键TIME每个阵列元素 - 8h59 = 1个阵列

  • 9h之间用键TIME每个阵列元素 - 9h59 = 1个阵列

  • 每个具有密钥TIME在10h - 10h59 = 1之间的数组元素

  • ETC ...

而这一天的所有时间。

请帮我解决这个问题。

编辑:

现在我有这个是工作,但我想有一些简单得多。

$sales_by_hours = array(); 
    foreach($sales_array as $element){ 

     $time = strtotime($element['TIME']); 
     if ($time >= strtotime('7:00') && $time <= strtotime('7:59')){ 
      $sales_by_hours['7:00'][] = $element; 
     } 
     if ($time >= strtotime('8:00') && $time <= strtotime('8:59')){ 
      $sales_by_hours['8:00'][] = $element; 
     } 
     if ($time >= strtotime('9:00') && $time <= strtotime('9:59')){ 
      $sales_by_hours['9:00'][] = $element; 
     } 
     if ($time >= strtotime('10:00') && $time <= strtotime('10:59')){ 
      $sales_by_hours['10:00'][] = $element; 
     } 
     if ($time >= strtotime('11:00') && $time <= strtotime('11:59')){ 
      $sales_by_hours['11:00'][] = $element; 
     } 
     if ($time >= strtotime('12:00') && $time <= strtotime('12:59')){ 
      $sales_by_hours['12:00'][] = $element; 
     } 
     if ($time >= strtotime('13:00') && $time <= strtotime('13:59')){ 
      $sales_by_hours['13:00'][] = $element; 
     } 

    } 
+0

什么码你尝试过自己吗? – EluciusFTW

+0

制作一个最小可能的情况并包含问题中的所有信息。 – user2864740

+0

无论如何,$ date应该是每个值被分组到桶中的* same *值。 – user2864740

回答

1

简单比你有什么是

$sales_by_hours = array(); 
foreach($sales_array as $element) { 
    // the H is 24-hour format of an hour with leading zeros - 00 through 23 
    $key = date('H:00', $time); 

    // make sure the key exists in the array 
    if(!isset($sales_by_hours[$key])) { 
     $sales_by_hours[$key] = array(); 
    } 

    $sales_by_hours[$key][] = $element; 
}