2017-03-08 76 views
1

嗨,我有數組,它看起來像這樣:現在笨插入項目到數組

array (size=2) 
    0 => 
    object(stdClass)[21] 
     public 'id' => string '1' (length=1) 
     public 'name' => string 'John' (length=4) 
    1 => 
    object(stdClass)[22] 
     public 'id' => string '12' (length=2) 
     public 'name' => string 'Mary' (length=4) 

,每一個ID我將它們傳遞到另一個查詢以獲得來自另一個表中的另一信息,如何添加結果查詢每個ID在陣列中添加像這樣:

array (size=2) 
    0 => 
    object(stdClass)[21] 
     public 'id' => string '1' (length=1) 
     public 'name' => string 'John' (length=4) 
     public 'OfficeName' => string 'Records' (length=7) 
    1 => 
    object(stdClass)[22] 
     public 'id' => string '12' (length=2) 
     public 'name' => string 'Mary' (length=4) 
     public 'OfficeName' => string 'Accounting' (length=10) 
+1

請你可以更新你的部分代碼,從那裏你會得到這個細節,所以它會更容易解釋你,你會做什麼 – jilesh

+0

如果你能解釋「另一個查詢」,「另一個信息」和「另一張桌子「的意思是讓我們可以瞭解你需要的邏輯來幫助你! – masterFly

+0

不知道你的查詢,但也許你應該看看「加入」https://www.codeigniter.com/userguide3/database/query_builder.html – lumos0815

回答

0

一旦你有$ OfficeName你只需要做一個foreach循環,像這樣:

foreach ($array as $k) { 
    $k->OfficeName = $OfficeName; 
} 
0

第一個數組

$ar = array(
     (object)array(
       'id' => '1', 
       'name' => 'John' 
      ), 
     (object)array(
       'id' => '12', 
       'name' => 'Mary' 
      ) 
    ); 


據說你要查詢來獲取辦公室的名稱,並假設查詢的結果會是這樣的:

結果數組

$ar2 = array(
     (object)array(
       'id' => '1', 
       'OfficeName' => 'Records' 
      ), 
     (object)array(
       'id' => '12', 
       'OfficeName' => 'Accounting' 
      ) 
    ); 


插入來自第二陣列值的第一陣列,我會做這樣的事情:

$new_arr = array(); 
    foreach ($ar as $value) { 

     foreach ($ar2 as $row) { 
      if ($row->id == $value->id) { 
       $temp_ar = (object)array(
        'id' => $value->id, 
        'name' => $value->name, 
        'OfficeName' => $row->OfficeName 
       ); 
       array_push($new_arr, $temp_ar); 
      } 
     }    
    } 


的$ new_arr將與第一陣列有結果數組的內容一起。