2014-11-04 23 views
0

我在我的模型中有下面的函數,它返回一個數組數組。我想對每一行進行另一個操作,並在返回之前將結果添加到數據數組中。在數組上添加數據查詢結果

function get_all_annonce() 
    { 
     $this->db->select(" * from annonce"); 
     $this->db->order_by("annonce.DATEDEBUTANNONCE","asc"); 
     $q=$this->db->get(); 
     if($q->num_rows()>0) 
     { 
      foreach($q->result() as $row) 
      { 

       $data[]=$row; 
       //I try to add another result 
       $experience=$this->get_experience($row->NUMUSER); 
       $data['experience']=$experience; 
      } 
      return $data; 
     } 
    } 

但是我有一個錯誤,當我嘗試進入$experience$row->'experience'在我看來。我該如何解決它?

回答

1

除了上面的答案。 首先你有不必要的任務,你可以在一行中完成。 2nd - 當您使用[]時 - 它將自動創建索引,並將該行作爲數組添加到該索引。你會得到一個多維數組(0 => result 1,1 => result 2等)。

如果您想將'體驗'鍵添加到結果中,則不能將其直接添加到數據中。

您將得到一個數組,它將有密鑰0,1,2,3,4 ...'experience'作爲最後一個密鑰 - 每次被覆蓋。

一種方法是使用關鍵變量(或使用循環代替):

 $i = 0; 
     foreach($q->result() as $row) 
     { 
      $data[$i]=$row; 
      $data[$i]['experience'] = $this->get_experience($row->NUMUSER); 
     } 

如果你只使用[]兩個,這將分配爲每一個每次迭代不同的密鑰。

2

$data變量定義在錯誤的範圍內。你在foreach循環中定義了它,但是你試圖在之後返回它。嘗試在foreach上方添加$data = Array();