2011-10-15 132 views
0

首先,我真的不與PHP,和最佳實踐經驗豐富的使用,所以請,是不錯的;)的foreach循環的麻煩和輸出

無論如何,我有一個谷歌分析輸出到掙扎java表中,我的foreach顯示pagehits和綜合瀏覽器,根本聽不到我:/

只是爲了clearify,數組沒有錯,當在常規表中foreaching值,他們是正確的。我很確定我的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. 

現在我foreaching: 注:metricsarray =>(uniquePageviews + NewVisits),只爲冠軍

<?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> 

我的問題在於,它顯示在兩個TR中完全相同,除了TH標題文本。 它應該僅在TR 1中顯示唯一vist,並在TR2中顯示Pageviews。

感謝有這方面的投入..

親切的問候! -Tom

回答

0

無論變量$account是什麼,它都循環遍歷相同的數組,每次迭代$metricsArray as $m

+0

是的,我知道,但我不知道如何讓它不以這種方式循環。並且僅輸出第一個循環中的唯一匹配值和第二個循環中的綜合瀏覽量。 – Tom

+1

最好是,你應該有'$ metricsArray'中的所有信息,並且只需遍歷它。現在的方式是,只有'$ metricsArray'中的標題和之前的某個地方(代碼未顯示)中設置了'$ account',這是隻有一個項目的數組。 –

+0

我知道我應該擁有所有的metricsarray,但是您對$ account數組錯誤。它包含15個谷歌分析項目(每天1個= 15天)。我不知道如何獲得指標值,但我會研究它。如果有任何其他建議如何計數或什麼,循環值,顯示他們正確的$帳戶數組? – Tom