Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Preg Match_Grouping_Preg Match All - Fatal编程技术网

通过部分匹配对php中的数组值进行分组

通过部分匹配对php中的数组值进行分组,php,arrays,preg-match,grouping,preg-match-all,Php,Arrays,Preg Match,Grouping,Preg Match All,我有这样一个数组: Array ( [0] => Saturday 19th January 2013 07:59:57 PM [1] => Sunday 20th January 2013 07:00:26 PM [2] => Monday 21st January 2013 02:08:15 PM [3] => Monday 21st January 2013 02:11:00 PM [4] => Monday 21st

我有这样一个数组:

Array
(
    [0] => Saturday 19th January 2013 07:59:57 PM
    [1] => Sunday 20th January 2013 07:00:26 PM
    [2] => Monday 21st January 2013 02:08:15 PM
    [3] => Monday 21st January 2013 02:11:00 PM
    [4] => Monday 21st January 2013 02:41:02 PM
    [5] => Monday 21st January 2013 02:42:14 PM
    [6] => Monday 21st January 2013 03:03:34 PM
    [7] => Monday 21st January 2013 03:07:39 PM
    [8] => Monday 21st January 2013 03:37:11 PM
    [9] => Monday 21st January 2013 03:37:52 PM
    [10] => Monday 21st January 2013 04:14:08 PM
    [11] => Monday 21st January 2013 04:16:38 PM
    [12] => Monday 21st January 2013 04:19:18 PM
    [13] => Monday 21st January 2013 05:45:17 PM
    [14] => Monday 21st January 2013 06:39:04 PM
    [15] => Monday 21st January 2013 08:01:56 PM
    [16] => Monday 21st January 2013 08:03:23 PM
    [17] => Monday 21st January 2013 08:12:15 PM
    [18] => Monday 21st January 2013 08:15:20 PM
    [19] => Monday 21st January 2013 08:29:57 PM
    [20] => Monday 21st January 2013 09:57:25 PM
    [21] => Tuesday 22nd January 2013 01:57:59 AM
    [22] => Tuesday 22nd January 2013 06:39:34 AM
    [23] => Tuesday 22nd January 2013 11:38:25 AM
    [24] => Tuesday 22nd January 2013 03:21:08 PM
    [25] => Tuesday 22nd January 2013 04:09:36 PM
}
我希望将此阵列分组,以便获得:

Array
(
    [Saturday 19th January 2013 07:59:57 PM] => 1
    [Sunday 20th January 2013 07:00:26 PM] => 1
    [Monday 21st January 2013 02:08:15 PM] => 19
    [Tuesday 22nd January 2013 01:57:59 AM] => 5
   }
这里的关键应该是匹配20-23个字符的前一个数组中的匹配值,该值是前一个数组中匹配值的计数,我一直在仔细研究这个问题。 如有任何帮助,我将不胜感激

这是可行的(尽管新阵列不能保持时间,这可能更可取):

如果您想知道时间,请使用以下命令:

foreach ($array as $date)
{

  $name = date('l jS F Y', strtotime($date));

  $time = substr($date, -11);

  if (!isset($times[$name]))
  {
    $newArray[$name . ' ' . $times[$name] = $time] = 1;
  }

  else
  {
    ++$newArray[$name . ' ' . $times[$name]];
  }

}

这个问题没有显示出任何研究成果。做家庭作业很重要。告诉我们你发现了什么,为什么它不能满足你的需要。这表明你花了时间来帮助自己,这使我们不必重复显而易见的答案,而且最重要的是,这有助于你得到更具体、更相关的答案。
foreach ($array as $date)
{

  $name = date('l jS F Y', strtotime($date));

  $time = substr($date, -11);

  if (!isset($times[$name]))
  {
    $newArray[$name . ' ' . $times[$name] = $time] = 1;
  }

  else
  {
    ++$newArray[$name . ' ' . $times[$name]];
  }

}