使用嵌套的每个循环构建多维数组?

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 示例

以上是关于使用嵌套的每个循环构建多维数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 C# 中的嵌套循环写入多维数组?

带有嵌套循环的多维数组Javascript

带有嵌套for循环的Javascript多维数组-无法正常工作

jQuery循环遍历多维数组并显示每个父数组的子数组

如何理解JS多维数组

将多维数组从mysql层次结构表填充到php