2013-03-18 43 views
0

我想從csv讀取數組值並創建屬於主鍵字段的子數組。例如目前,說我有以下的陣列結構&內容...爲複製鍵值創建多維數組

$events['venue-id'] = 55 
$events['event-date'] = 19/02/13; 
$events['event-name'] = 'Sports Day'; 

$events['venue-id'] = 76 
$events['event-date'] = 22/02/13; 
$events['event-name'] = 'Gala Event'; 

$events['venue-id'] = 55 
$events['event-date'] = 29/03/13; 
$events['event-name'] = 'Some Other Event'; 

什麼是使用場地-ID作爲與它的其他數據被分配到父陣列中的一個關鍵的最佳方式子陣列?基本上是一對多的關係。

+0

首先:那你已經嘗試?第二:我建議以面向對象的方式來做。 – ITroubs 2013-03-18 23:58:43

+0

您只需讀取CSV文件的每一行,並在foreach行中查看,如果最終數組中存在主鍵,則只需添加包含數據的子數組,另一種情況下創建該條目並添加子數組 – MatRt 2013-03-18 23:59:09

回答

0

你可以構建像這樣,如果你想:

$events = array( 
    "55" => array(
    "event-date" => "19/02/03", 
    "event-name" => "Sports Day" 
    ), 
    "76" => array(
    ... 

); 

這是假設不會有重複的地點標識。

0

試試這個:

$res    = array(); 
if (($handle  = fopen("your_file.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $res[$data[0]]['venue-id']   = $data[0]; 
     $res[$data[0]]['event-date']  = $data[1]; 
     $res[$data[0]]['event-name']  = $data[2]; 
    } 
} 

echo "<pre>"; 
print_r($res);