2014-04-11 61 views
1

我發現這個有用的腳本可以將Google Spreadsheets轉換爲數組。 https://github.com/VernierSoftwareTechnology/google-spreadsheet-to-php-array/blob/master/google-spreadsheet-to-array.php將Google Spreadsheet轉換爲PHP腳本修改

結果數組的形式是:

Array 
(
[1] => Array 
    (
     [A] => id 
     [B] => start_date 
     [C] => title 
     ... 
[2] => Array 
    (
     [A] => 10551920077 
     [B] => 27/03/2014 19:00:00 
     [C] => Up and Down The City Road 
    ) 

and so on... 

但我希望第一個行值充當數組鍵,如:

Array 
(
[2] => Array 
    (
     [id] => 10551920077 
     [start_date] => 27/03/2014 19:00:00 
     [title] => Up and Down The City Road 
    ) 

and so on... 

我試着修改代碼,但沒有成功。 有什麼幫助嗎?

在此先感謝! :)

回答

1

不必修改別人的代碼(這往往是很困難的),它可能更容易在事後更改數據:

// get the column headers 
$headers = $data[1]; 

// walk the array and change the keys 
$data = array_map(function($row) use($headers) { 
    // create an array to hold the new row 
    $new = array(); 

    // step through the array keys... 
    foreach(array_keys($row) as $k) 
     // ...and add the new key to the new row with the old data 
     $new[$headers[$k]] = $row[$k]; 

    // add the new row to the array 
    return $new; 
}, $data); 

// now remove the header row from the data 
unset($data[1]); 

有可能是一個辦法(使用array_walk一些組合,array_map或其他陣列功能)來替換那裏的那個醜陋的foreach循環。

+0

哇!它像一個魅力! 沒有關於這種方法。這完全有道理! 非常感謝! :) – rjpedrosa