Я пытаюсь создать массив результатов из 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
)
)
Если я просто печатаю во всех строках девять ответов, то в конечном массиве должно быть девять ключей, каждый из которых содержит ассоциативный массив с заголовками столбцов => данными из этой строки [0].
Спасибо за помощь, я пытался найти документацию, и там очень мало. Также этот API экспортирует огромное количество других данных, поэтому мне нужен этот код для отображения только заголовка столбца и результата.
Вы сбрасываете $i
на каждой итерации.
foreach ($response->getRows() as $row => $data){
$i = 0;
Поместите это вне петли.
$i = 0;
foreach ($response->getRows() as $row => $data){
Других решений пока нет …