使用嵌套的每个循环构建多维数组?
Posted
技术标签:
【中文标题】使用嵌套的每个循环构建多维数组?【英文标题】:Building a multi-dimensional array using nested for each loops? 【发布时间】:2016-06-01 04:33:20 【问题描述】:我正在尝试从 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 所有行有九个响应,所以最终数组应该有九个键,每个键都包含一个关联数组,其中列标题 => 来自该 [0] 行的数据。
感谢您的帮助,我一直在尝试查找文档,但很少。此 API 还导出大量其他数据,这就是为什么我需要此代码仅显示列标题和结果。
【问题讨论】:
【参考方案1】:您在每次迭代时重置$i
。
foreach ($response->getRows() as $row => $data)
$i = 0;
把它放在循环之外。
$i = 0;
foreach ($response->getRows() as $row => $data)
【讨论】:
呃……谢谢!!!它总是缺少括号或一些愚蠢的东西。我真的花了两个小时在沮丧中搞砸了。我将尝试上传完整的工作脚本,因为我在 php 中找不到任何使用新 api 的工作 SELECT 示例以上是关于使用嵌套的每个循环构建多维数组?的主要内容,如果未能解决你的问题,请参考以下文章