2011-03-24 73 views
1
function dp(){ 

     $this->load->library('heart'); 



     $times = 35; 

     $i = 0; while ($i<$times){ 
     $this->heart->test(); 

     //10 newest 
     $query = $this->db->get('test', 10, 20); 


      //set variables from query 
     foreach ($query->result() as $getrow) 
     { 
     $data1 = $getrow->data1; 
     $data2 = $getrow->data2; 
     } 
     //for each data1; do go(); 
     foreach ($data1 as $id){ 
      $this->heart->go($id,$data2); 
      } 

     //increment $i 
     $i++; 
     } 

     } 

嘿傢伙,這裏是我的代碼。我試圖從數據庫中獲取最新的條目,然後將它們設置爲變量。對於每個變量,我試圖調用一個函數來傳遞$ id(data1)和$ data2。 data2會被傳遞還是需要像$ data1那樣做$ id & & $ data2 as $ id2。我需要將$ data1和$ data2傳遞給go(),每次都應該有所不同。Foreach裏面的功能

這裏的問題是我每次嘗試運行代碼時都會收到爲foreach()提供的「無效參數」。任何人都知道這是什麼問題?

預先感謝您。

+3

*查詢是否成功? – 2011-03-24 01:21:31

回答

0

我相信你實際上想要創建$data1$data2的數組。

目前,您每次通過第一個foreach循環覆蓋每個變量的值。

$data1 = array(); 
$data2 = array(); 
//set variables from query 
foreach ($query->result() as $getrow) 
{ 
    $data1[] = $getrow->data1; 
    $data2[] = $getrow->data2; 
} 
//for each data1; do go(); 
foreach ($data1 as $key => $id){ 
    $this->heart->go($id,$data2[$key]); 
} 

另外,您可以使用數據1和數據2的鍵/值對數組

$data = array(); 
foreach ($query->result() as $getrow) 
{ 
    $data[$getrow->data1] = $getrow->data2; 
} 
//for each data1; do go(); 
foreach ($data as $key => $value){ 
    $this->heart->go($key, $value); 
} 
0

你可以用一個foreach循環做這一切,而不建立不必要的數據數組:

foreach($query->result() as $getrow) { 
    $this->heart->go($getrow->data1, $getrow->data2); 
}