2011-07-10 42 views
1

我有這個疑問通過我得到reult我怎樣才能合併兩個數組?

$query_message1 = "select a.new,a.mes_id,a.frm_id,a.mem_id,a.subject,a.body,a.date,a.read from messages_system as a where a.frm_id='$memId' and a.type='message' order by date desc limit $lowerlimit,$limit"; 
      $exeMessage=execute_query($query_message1,true,"select"); 
$message =$exeMessage; 
print_r($message); 

foreach($exeMessage as $kk=>$mem){ 

      $query_message2 = "select b.profilenam,b.photo_thumb,b.gender,b.profile_type from members as b where b.mem_id='".$mem['mem_id']."'"; 
      $exeMessage1 = execute_query($query_message2,true,"select"); 
      //print_r($exeMessage); 
      if (empty($exeMessage1)) { 
      echo "0"; 
      $img = "images/my-profile-img3-big.gif"; 
       // print_r($message['mes_id']); 
        $exeMessage1['profilenam']='Annonymous'; 
        $exeMessage1['photo_thumb']=$img; 
        $exeMessage1['gender']='m'; 
        $exeMessage1['profile_type']=''; 
        $message[$kk] = $exeMessage1; 

      } 

      } 

很好的print_r($消息);行給我

(
    [0] => Array 
     (
      [new] => new 
      [mes_id] => 1030 
      [frm_id] => 329 
      [mem_id] => 39 
      [subject] => aaaa 
      [body] => aaaa 
      [date] => 1310285289 
      [read] => read 
     ) 

    [1] => Array 
     (
      [new] => viewed 
      [mes_id] => 1029 
      [frm_id] => 329 
      [mem_id] => 397 
      [subject] => aaaa 
      [body] => aaaa 
      [date] => 1310285188 
      [read] => read 
     ) 
) 

和線$message[$kk] = array_merge($exeMessage1,$message[$kk]); 給我造成的條件if (empty($exeMessage1)) {

現在我想這兩個數組合並,這樣最終的結果會是這樣

(
    [0] => Array 
     (
      [new] => new 
      [mes_id] => 1030 
      [frm_id] => 329 
      [mem_id] => 39 
      [subject] => aaaa 
      [body] => aaaa 
      [date] => 1310285289 
      [read] => read 
      [profilenam] => Annonymous 
      [photo_thumb] => images/my-profile-img3-big.gif 
      [gender] => m 
      [profile_type] => 



     ) 

    [1] => Array 
     (
      [new] => viewed 
      [mes_id] => 1029 
      [frm_id] => 329 
      [mem_id] => 397 
      [subject] => aaaa 
      [body] => aaaa 
      [date] => 1310285188 
      [read] => read 
      [profilenam] => Purple Test 
      [photo_thumb] => photos/19db7b14c0ebdb98838fdafb46b3a1ebth.jpeg 
      [gender] => n 
      [profile_type] => C 
     ) 
) 

請幫助 謝謝

這裏是解決方案

$query_message1 = "select a.new,a.mes_id,a.frm_id,a.mem_id,a.subject,a.body,a.date,a.read from messages_system as a where a.frm_id='$memId' and a.type='message' order by date desc limit $lowerlimit,$limit"; 
      $exeMessage = execute_query($query_message1, true, "select"); 
      $totalResult = "select a.new,a.mes_id,a.frm_id,a.mem_id,a.subject,a.body,a.date,a.read from messages_system as a where a.frm_id='$memId' and a.type='message' order by date desc"; 
      $exetotalResult = execute_query($totalResult, true, "select"); 

      foreach ($exeMessage as $kk => $mem) { 

       $query_message2 = "select b.profilenam,b.photo_thumb,b.gender,b.profile_type from members as b where b.mem_id='" . $mem['mem_id'] . "'"; 
       $exeMessage1 = execute_query($query_message2, true, "select"); 

       if (empty($exeMessage1)) { 
        $img = "images/my-profile-img3-big.gif"; 
        $exeMessage1[$kk]['profilenam'] = 'Annonymous'; 
        $exeMessage1[$kk]['photo_thumb'] = $img; 
        $exeMessage1[$kk]['gender'] = 'm'; 
        $exeMessage1[$kk]['profile_type'] = ''; 
       } 
       $message[$kk] = array_merge((array) $mem, (array) $exeMessage1[0]); 
      } 
+2

你試過[array_merge_recursive](http://php.net/manual/en/function.array-merge-recursive.php)嗎? – Zyava

+2

題外話,你應該使用準備好的語句,而不是直接將值插入到語句中。準備好的陳述更安全,更高效。 – outis

回答

1

您可以簡單地使用array_merge()函數。

+0

不是遞歸的,所以你的意思可能是'array_merge_recursive()'。 – hakre