2016-06-01 69 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示例 –