Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach循环故障与输出_Php_Arrays_Loops_Foreach - Fatal编程技术网

Php Foreach循环故障与输出

Php Foreach循环故障与输出,php,arrays,loops,foreach,Php,Arrays,Loops,Foreach,首先,我对PHP真的不是很有经验,也不是最好的使用方法,所以请友好一点 无论如何,我正在努力将google analytics输出到一个java表,我的foreach显示页面点击率和页面浏览量,根本不听我说:/ 只是想澄清一下,数组没有错,当在常规表中计算值时,它们是正确的。我很确定我的foreach有点问题,可能是循环计数或??你不知道吗 Array ( [0] => Array ( [id] => http://www.google.com/analytics/feeds/da

首先,我对PHP真的不是很有经验,也不是最好的使用方法,所以请友好一点

无论如何,我正在努力将google analytics输出到一个java表,我的foreach显示页面点击率和页面浏览量,根本不听我说:/

只是想澄清一下,数组没有错,当在常规表中计算值时,它们是正确的。我很确定我的foreach有点问题,可能是循环计数或??你不知道吗

Array ( 
[0] => Array ( [id] => http://www.google.com/analytics/feeds/data?ga:date=20110930&start-date=2011-09-30&end-date=2011-10-15 [updated] => 2011-10-14T17:00:00.001-07:00 [title] => ga:date=20110930 [dimensions] => Array ( [name] => date [value] => 20110930 ) [metrics] => Array ( [0] => Array ( [confidenceInterval] => 0.0 [name] => newVisits [type] => integer [value] => 4 ) 

[1] => Array ( [id] => http://www.google.com/analytics/feeds/data?date=20111001&start-date=2011-09-30&end-date=2011-10-15 [updated] => 2011-10-14T17:00:00.001-07:00 [title] => ga:date=20111001 [dimensions] => Array ( [name] => date [value] => 20111001 ) [metrics] => Array ( [0] => Array ( [confidenceInterval] => 0.0 [name] => newVisits [type] => integer [value] => 5 ) [1] => Array ( [confidenceInterval] => 0.0 [name] => uniquePageviews [type] => integer [value] => 54 ) ) )

and so on.
现在我的痛苦是: 注意:metricsarray=>uniquePageviews+NewVisitions,仅用于标题

<?php if (!empty($metricsArray)): ?>
           <?php foreach ($metricsArray as $m): ?>

            <tr>
            <th><?php echo $m ?></th> <!-- To display UniqueHits and Pageviews titles-->

                <?php 
                foreach ($account['Account']['dataPoints'] as $data): ?>

                    <?php if (!empty($data['metrics'])): ?>

                    <?php foreach ($data['metrics'] as $key => $val): ?>

                    <?php if (is_numeric($key)): ?>

                    <td><?php echo $val['value'] ?></td>

                    <?php elseif ($key == 'value'): ?>

                    <td><?php echo $val ?></td>

                    <?php endif ?>

                    <?php endforeach ?>

                    <?php endif ?>

                 <?php endforeach ?>
            </tr>
            <?php endforeach ?>
       <?php endif ?>   
我的问题是此输出如下所示:

<tr>
<th>NewVisits</th>
<td>1</td>  <!-- Unique visit
<td>7</td>  <!-- PageViews
<td>2</td>  <!-- Uniwue hit
<td>7</td>  <!-- PageViews
+++++
</tr>

<tr>
<th>NUniquePageviews</th>
<td>1</td>  <!-- Unique visit
<td>7</td>  <!-- PageViews
<td>2</td>  <!-- Uniwue hit
<td>7</td>  <!-- PageViews
+++++
</tr>
我这里的问题是,除了第TH个标题文本外,它在两个TR中显示完全相同。 它应该只在TR 1中显示独特的vistis,在TR2中显示页面视图

谢谢你在这方面的任何意见

亲切的问候!
-Tom

无论$account是什么变量,它在$metricsArray的每一次迭代中都与$m循环通过同一个数组。

是的,我知道,但我不确定如何使它不以这种方式循环。并且只在第一个循环中输出唯一的hits值,在第二个循环中输出页面浏览量。最好是,您应该在$metricsArray中拥有所有信息,并在其中进行迭代。现在的情况是,您在$metricsArray中只有标题,而在之前未显示的代码中,您设置了$account,这是一个只有一项的数组。我知道我应该在metricsArray中包含所有内容,但您对$account数组的理解是错误的。它包含15个谷歌分析项目,每天1个=15天。我不确定如何将值获取到metricsarray,但我将研究它。如果有任何关于如何计数或诸如此类的其他建议,循环值,以便从$account数组中正确显示它们??哦,对不起,我的意思是$account['account']['dataPoints']中只有一项。