2015-02-23 73 views
-1

我有一個放在一起的數組。它基本上是7個站點的24個數據點。每個工作站每小時都有一個數據點,併爲每個數據點創建一個新的子數組。現在的問題是,我現在想基於站點分割數據,所以我可以對其進行分類。當我去做array_filter不適合我。我想基本上將每個子數組中具有相同行0結果的所有值組合在一起。但保留每個數據點基於它們。第0行是電臺名稱。這是一個數組看起來像什麼的例子。有160個子陣列。我需要做的就是根據站名將它們組合在一起。我打算基於Array值來做這件事,但問題是如果數據點丟失,它會打破邏輯。如何合併基於第一個值的子數組php

Array 
(
    [0] => Array 
    (
     [0] => STATIONONE 
     [1] => 02/22/15 04:00:00 PM 
     [2] => SW 
     [3] => Array 
      (
       [0] => 4.51 
      ) 

     [4] => MPH 
     [5] => Array 
      (
       [0] => 16.1 
      ) 

     [6] => MPH 
    ) 

    [1] => Array 
    (
     [0] => STATIONONE 
     [1] => 02/22/15 05:00:00 PM 
     [2] => S 
     [3] => Array 
      (
       [0] => 2.7 
      ) 

     [4] => MPH 
     [5] => Array 
      (
       [0] => 9.61 
      ) 

     [6] => MPH 
    ) 

它只是一直重複,直到我有23個值。然後下一站。

所以0-22子陣值=站1 23-45子陣值=站2

等。只是說明,以幫助展示什麼,我試圖做的。

+0

你能解釋哪個是你的輸出嗎? – 2015-02-24 03:28:00

回答

0

接受的答案讓我接近了解這一點。我不得不通過電臺來做這件事。所以我創建了7個foreach語句併爲每個站創建了一個數組。這樣我可以根據需要將數組合並在一起。

# Parse our All Data and set station 
foreach ($array as $entry) { 
    if ($entry[0] === "STATIONONE"){ 
    $S1pkwsite = ($entry[0]); 
    $S1pkwvalue = ($entry[5][0]); 
    $S1pkwdate = ($entry[1]); 
    $S1pkwunit = ($entry[6]); 
    $S1wspvalue = ($entry[3][0]); 
    $S1wspunit = ($entry[4]); 
    $S1wdrvalue = ($entry[2]); 
    $S1pkwdataarray[] = array('SiteName'=>$S1pkwsite,'DATE'=>$S1pkwdate,'WDR'=>$S1wdrvalue,'VALUE'=>$S1pkwvalue,'UNIT'=>$S1pkwunit); 
    } 
    } 


array_push ($Stationone_data, $pkwdataarray); 

$Stationone_data = array_shift($Stationone_data); 
0

這是不完全清楚,你希望你的輸出爲,但這可能讓你有:

$entriesByStation = [] 
foreach ($entries as $entry) { 
    $entriesByStation[$entry[0]] = $entry; 
} 

這將組中的所有$entriesByStation數組中的條目站名

+0

非常感謝,我試圖弄清楚如何重新生成數組,以便我可以合併所有具有相同行0值的子數組。所以我只有7個子陣列。 – GuitarGeek86 2015-02-24 15:57:01

相關問題