2012-11-08 70 views
0

你好朋友我的問題很簡單,但很難理解我這麼認爲。如何將兩個不同的數組添加到每個循環的簡單

下面是一些更多的代碼: -

$graph1 = new gapi($ga_email,$ga_password); 

    $dimensions = array('date'); 
    $metrics = array('visits'); 

    $graph1->requestReportData($ga_profile_id, 
          $dimensions, 
          $metrics, 
          'date' 
          ); 


$graph2 = new gapi($ga_email,$ga_password); 

$dimensions = array('date'); 
$metrics = array('visits'); 

$graph2->requestReportData($ga_profile_id, 
         $dimensions, 
         $metrics, 
         'date', 
         $filter, // Filter the data 
         '2012-09-07', // Start Date 
         '2012-10-07', // End Date 
         1, // Start Index 
         500 // Max results 

         ); 

我有一個數組可以說

$resultsg1 = $graph1->getResults(); 

$resultsg2 = $graph2->getResults(); 

,我試圖從每個取這個值循環代碼在這裏

data.addRows([ 
      <?php 
      foreach($results as $result) 
     { 
      echo '["'.date("l, F j, Y",strtotime($result->getDate())).'", '.$result->getVisits().'," Visits :'.$result->getVisits().'","'.date("l, F j, Y",strtotime($result->getDate())).'",'.$result->getVisits().'," Visits :'.$result->getVisits().'"],'; 
      } 

      ?> 
     ]); 

現在我的問題,我需要的輸出是這樣的: -

foreach($resultsg1 as $result1 and resultsg2 as $results2) 

{ 
       echo '["'.date("l, F j, Y",strtotime($result1->getDate())).'", '.$result1->getVisits().'," Visits :'.$result1->getVisits().'","'.date("l, F j, Y",strtotime($result2->getDate())).'",'.$result2->getVisits().'," Visits :'.$result2->getVisits().'"],'; 
       } 

       ?> 
      ]); 

任何幫助,高度讚賞.... :)

注意: - 這段代碼的目的是簡單地創建兩個不同月份的圖表。

回答

0
foreach($results1 as $k => $result) 
{ 
    echo $result->getDate() , $results2[$k]->getDate() 
} 

如果不是同一lenght,需要isset檢查($結果2 [$ K])

+0

:)問題編輯 – natasha

0

不確定,如果我完全理解你的要求,但如果你有多個陣列,並希望它們連接在一起,然後循環通過他們看array_merge如果更復雜的結構數組合並遞歸

$results = array_merge($result1, $resultg1); 

的foreach($結果$結果) ....

+0

:)我嘗試這一點,但我的兩個不同的圖形是在同一行中出現。 – natasha

+0

:)增加更多解釋 – natasha

1

您可以使用SPLMultipleIterator

<?php 
echo 'phpversion: ', phpversion(), "\n"; 
$resultsg1 = data(1); 
$resultsg2 = data(2); 
$iterator = new MultipleIterator(); 
$iterator->attachIterator(new ArrayIterator($resultsg1)); 
$iterator->attachIterator(new ArrayIterator($resultsg2)); 

foreach($iterator as $e) { 
    echo 'r1:', $e[0]->bar(), ', r2:', $e[1]->bar(), "\n"; 
} 

// boilerplate 
function data($n) { 
    return array_map(function($e) use($n) { return new Foo($n.'-'.$e); }, range(1, 9)); 
} 

class Foo { 
    public function __construct($n) { 
     $this->n = $n; 
    } 
    public function bar() { 
     return $this->n; 
    } 
} 

打印

phpversion: 5.4.7 
r1:1-1, r2:2-1 
r1:1-2, r2:2-2 
r1:1-3, r2:2-3 
r1:1-4, r2:2-4 
r1:1-5, r2:2-5 
r1:1-6, r2:2-6 
r1:1-7, r2:2-7 
r1:1-8, r2:2-8 
r1:1-9, r2:2-9 
+0

:)編輯問題 – natasha

+0

答案依然如此。我的'data(n)'是你的'$ graphn-> getResults()'而不是調用'$ e [n] - > foo()''你必須調用'$ e [n] - > getDate()' ,' - > getVisits()'等等。 – VolkerK

+0

聽起來不錯,但對我來說似乎更加複雜,請你更清楚地解釋我。 – natasha

相關問題