2013-10-01 36 views
0

我在這裏有一個多維數組。多維數組到線性數組?

{ 
    "date_start": [ 
        "2013-09-30", 
        "2013-09-27", 
        ], 

    "time_start": [ 
        "2013-09-30 08:41:00", 
        "2013-09-27 09:01:00",  
        ], 

    "time_out": [ 
        "2013-09-30 18:37:00", 
        "2013-09-27 21:11:00", 
        ],    
    } 

是否有可能將其轉換爲線性數組?像這樣的東西?

{ 
    [{"date_start":"2013-09-30","time_start":"2013-09-30 08:41:00","time_out":"2013-09-30 18:37:00"}, 
    {"date_start":"2013-09-27","time_start":"2013-09-30 09:01:00","time_out":"2013-09-30 21:11:00"}] 
} 

我很難想象如何去做T_T。感謝任何能夠幫助我的人。

更新: 這是我現在更新的工作。感謝Nil'z啓發我使用解碼。只需要多一點點。

 $data_en = json_encode($data); 
    $data_de = json_decode($data_en, true); 
    $test = array(); 

    foreach($data_de as $key => $value) 
    { 
     echo $key."<br/>"; 
     foreach($value as $k => $v) 
     { 
      echo "$k |"; 
      echo json_encode($v)."<br/>"; 
     } 
    } 

這是現在的輸出,但仍然需要想些辦法:

date_start 
0 |"2013-09-30" 
1 |"2013-09-27" 

time_start 
0 |"2013-09-30 08:41:00" 
1 |"2013-09-27 09:01:00" 

time_out 
0 |"2013-09-30 18:37:00" 
1 |"2013-09-27 21:11:00" 
+1

這個味道更像JSON,後者解碼可能成爲一個多維數組。這個「數組」總是二維嗎? – Mark

+0

是它的json和yap它會。 – bot

+0

生成的json沒有被解析... –

回答

1

如果JSON嘗試這樣的:

<?php 
    $data = array(); 
    $array = json_decode($mainArray); #decode the JSON 
    foreach($array as $key => $each){ 
     $data[$key]['date_start'] = $each['date_start']; 
     $data[$key]['time_start'] = $each['time_start']; 
     $data[$key]['time_out'] = $each['time_out']; 
    } 
    #again encode the JSON 
    $data = json_encode($data); 
    print_r($data); 
?> 
+0

它給了我一個警告'json_decode()期望參數1是字符串,數組給定'和'爲foreach()提供的無效參數':( – bot

+0

已經替換了'$ mainArray'你的'JSON變量'?@bot –

+0

是的,我改變了它。我做了一個小研究,你的答案應該工作。我只有解碼部分的問題.. :( – bot

0

您可以用遞歸函數的嘗試:

function array_multi_to_linear($arr) { 
    static $rez; 
    foreach($arr as $v) { 
      if (is_array($v)) { 
       array_multi_to_linear($v); 
      } else { 
       $rez[] =$v; 
      } 
    } 
    return $rez; 
}