Php 将数组中包含“的项目的连续序列分组”;分离器;项目
我有以下数组,来自这样的循环数据:Php 将数组中包含“的项目的连续序列分组”;分离器;项目,php,arrays,Php,Arrays,我有以下数组,来自这样的循环数据: Array ( [0] => 24 September 2013 [1] => ................. [2] => ................. [3] => ................. [4] => ................. [5] => 25 September 2013 [6] => .................
Array
(
[0] => 24 September 2013
[1] => .................
[2] => .................
[3] => .................
[4] => .................
[5] => 25 September 2013
[6] => .................
[7] => .................
[8] => 27 September 2013
[9] => .................
[10] => .................
[11] => .................
[12] => .................
[13] => 28 September 2013
[14] => .................
[15] => .................
)
如何将此数组转换为按日期分隔的二维数组,如:
Array
(
[24 September 2013] => Array
(
[0] => .................
[1] => .................
[2] => .................
[3] => .................
)
[25 September 2013] => Array
(
[0] => .................
[1] => .................
)
[27 September 2013] => Array
(
[0] => .................
[1] => .................
[2] => .................
[3] => .................
)
[28 September 2013] => Array
(
[0] => .................
[1] => .................
)
)
我使用foreach循环生成abbove一维数组,使用2个值
$array = Array();
foreach($results as $value) {
$array[] = $value->date;
$array[] = $value->text;
}
你需要以某种方式识别日期。如果它是如您所示的直接格式,则可以使用正则表达式
$array = Array();
$curArray = null;
$date = null;
foreach($results as $value) {
if(preg_match('/^[0-9]{1,2} [A-Z][a-z]+ [0-9]{4}$/'), $value->date) === 1){
if($curArray !== null)
$array[$date] = $curArray;
$date = $value->date;
}
else{
$curArray[] = $value->text;
}
}
这个怎么样。它使用函数来标识表示日期的值
$transformed = array();
$key = null;
foreach($array as $value) {
if($key === null || strtotime($value) !== false) {
// create new key and initialise to array
$transformed[$value] = array();
$key = $value;
}
else {
// append $value to existing $key array
$transformed[$key][] = $value;
}
}
您提供的代码似乎不属于idea的第一个数组+1的输出。但是我们不知道这些值是什么,
…
值,也许其中一些值也是strotime可以识别的某种日期时间标准格式。。。