PHP/Zend/Google电子表格未获取所有行

PHP/Zend/Google电子表格未获取所有行,php,zend-framework,google-sheets,gdata,Php,Zend Framework,Google Sheets,Gdata,我试图通过PHP/Zend脚本从Google电子表格中获取所有行。这是我正在使用的脚本: $service=Zend\u Gdata\u电子表格::AUTH\u service\u NAME; $client=Zend\u Gdata\u ClientLogin::getHttpClient('xxxxxxxxx','xxxxxxx',$service); $spreadsheetService=新的Zend_Gdata_电子表格($client); //获取电子表格密钥 $spreadshee

我试图通过PHP/Zend脚本从Google电子表格中获取所有行。这是我正在使用的脚本:

$service=Zend\u Gdata\u电子表格::AUTH\u service\u NAME;
$client=Zend\u Gdata\u ClientLogin::getHttpClient('xxxxxxxxx','xxxxxxx',$service);
$spreadsheetService=新的Zend_Gdata_电子表格($client);
//获取电子表格密钥
$spreadsheetsKey='xxxxxxxxxxxx';
$worksheetId='xxx';
//获取细胞饲料
$query=new Zend_Gdata_电子表格_CellQuery();
$query->setSpreadsheetKey($spreadsheetsKey);
$query->setWorksheetId($worksheetId);
$cellFeed=$spreadsheetService->getCellFeed($query);
//构建条目数组:
$ssRows=array();
$ssRow=array();
$titleRow=array();
$tableRow=1;
foreach($cellFeed作为$cellEntry){
$row=$cellEntry->cell->getRow();
$col=$cellEntry->cell->getColumn();
$val=$cellEntry->cell->getText();
//将每行添加为新数组:
如果($row!=$tableRow){
阵列推送($ssRow,$ssRow);
$ssRow=array();
//移动到下一行/新阵列
$tableRow=$row;
}
//构建标题数组:
如果($row==1){
$titleRow[$col]=$val;
} 
//以标题作为键构建结果数组:
否则{
$key=$titleRow[$col];
$ssRow[$key]=$val;
}
}
//传递结果数组:
返回数组_reverse($ssRows);
这为我构建了一个数组,其中包含了电子表格中的大部分细节,但它总是漏掉最后一个条目——有人能看出我做错了什么,或者有没有更好的方法从电子表格中获取所有数据

该表格由三部分组成,基于不同的答案。在填写一个部分时,我想显示一个返回表单的URL,并预先填写第一个表单的一些详细信息,以加快表单第二部分的填写速度。这一切都很好,只是缺少最后一个条目才是主要问题


谢谢

您的代码是这样工作的:

if (next_row) {
    data[] = current_row
    current_row = array();
}
if (first_row) {
    title_row logic
} else {
    add cell to current_row
}
因此,只有在转到下一行时,才能将行添加到收集器中。这将错过最后一行,因为您将错过最后一个转换

简单的解决方法是添加
array\u push($ssRows,$ssRow)就在
foreach
循环之后。您需要为
0
行添加一个检查,然后应跳过该检查



也许更合适的解决方法是按行,然后按单元格,而不仅仅是按单元格进行迭代。

D'oh似乎是一个很明显的答案,因为他看不到Forrest的树!我尝试过获取列表提要,但似乎无法获得任何响应,而且文档非常少!遵循文档中的示例不会返回任何内容!这是一个痛苦的列表提要接受查询,这意味着我可以选择我得到的结果有多旧,而不是得到一切!