我发现这个有用的脚本可以将Google Spreadsheets转换为数组。 https://github.com/VernierSoftwareTechnology/google-spreadsheet-to-php-array/blob/master/google-spreadsheet-to-array.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...
我试图修改代码,但没有成功。 有什么帮助吗?
提前致谢! :)
答案 0 :(得分: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
循环。