2016-06-01 71 views
1

我试图从bigquery中创建一个结果数组,并且在创建关联数组时遇到了麻烦。所需的结果是一个包含所有结果的关联数组的数组。使用每个循环的嵌套构建多维数组?

这里是我的,它所产生:

//get the headings 
$headings = $response->getSchema()->getFields(); 
//make headings array 
$headingArray = array(); 
//loop through this array and build another array of just the names 
foreach ($headings as $key => $val) { 
    //each column heading: 
    $headingArray[] = $val->name; 
} 

$finalArray = array(); 


foreach ($response->getRows() as $row => $data){  
    $i = 0; 

    foreach($data['modelData']['f'] as $k => $v){ 
     //echo $k; 
     //print_r($v); 
     $tempData = $result[$row][$response['modelData']['schema']['fields'][$k]['name']] = $v['v']; 
     $finalArray[$i][$headingArray[$k]] = $tempData; 
    } 

    $i++; 
} 

只产生第一个结果(应该有9):

Array 
(
    [0] => Array 
     (
      [firstName] => Dillon 
      [lastName] => Landman 
      [address] => 9044 Smith Hall 
      [city] => Boulder 
      [zip] => 80310 
     ) 

) 

如果我只是print_r的存在的所有行是9个响应,所以最终数组应该有9个键,每个键都包含一个关联数组,其中包含列标题=>来自该[0]行的数据。

感谢您的帮助,我一直在努力寻找文档,而且很少。此外,此API会导出大量其他数据,这就是为什么我需要此代码才显示列标题和结果。

回答

1

您将在每次迭代时重置$i

foreach ($response->getRows() as $row => $data){  
    $i = 0; 

把它放在循环之外。

$i = 0; 
foreach ($response->getRows() as $row => $data){  
+0

呃..谢谢!!!它总是缺少支架或者一些愚蠢的东西。我实际上已经花了两个小时在挫折中搞砸了。我将尝试上传完整的工作脚本,因为我无法在PHP中找到任何有效的SELECT示例 –