2013-09-21 18 views
0

在數組項的連續序列我有以下陣列,從一個循環數據來這樣的:組,其中包含「分離器」項

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循環以使用2個值

$array = Array(); 
foreach($results as $value) { 
    $array[] = $value->date; 
    $array[] = $value->text; 
} 
+0

您所提供的代碼似乎不屬於你的第一陣列 – rabudde

回答

1

這個怎麼樣。它使用strtotime()函數來標識表示日期的值。

$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; 
    } 
} 
+0

+1。但我們不知道那些'.....'值是什麼,也許其中一些也是strtotime會識別的日期時間標準格式的某種... –

+0

ohhh你解決了它謝謝:) –

0
abbove一維陣列

你需要以某種方式識別日期。如果它是直接顯示格式,你可以使用正則表達式

$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; 
    } 
} 
+2

'\ d {1,2} \的輸出爲w \ d {4}'? – rabudde