2014-03-31 59 views
0

我有兩個數組合併MySQL的陣列

陣列1

[0]=>array(
    ['user']=>'name1', 
    ['age']=>'28'  
), 
    [1]=>array(
    ['user']=>'name2', 
    ['age']=>'58'  
), 
    [2]=>array(
    ['user']=>'name3', 
    ['age']=>'15'  
) 

數組2

[0]=>array(
    ['user']=>'name3', 
    ['sex']=>'male'  
), 
    [1]=>array(
    ['user']=>'name1', 
    ['sex']=>'male'  
), 
    [2]=>array(
    ['user']=>'name2', 
    ['sex']=>'female' 
) 

期待結果

[0]=>array(
    ['user']=>'name1', 
    ['age']=>'28', 
    ['sex']=>'male'  
), 
    [1]=>array(
    ['user']=>'name2', 
    ['age']=>'58', 
    ['sex']=>'male'  
), 
    [2]=>array(
    ['user']=>'name3', 
    ['age']=>'15', 
    ['sex']=>'female' 
) 

我已經嘗試了很多方法array_merge,array_combine。但我不知道我犯了什麼錯誤。請幫我

+0

我認爲這只是PHP的問題不是在mysql/ –

+0

@ MahdiParsa ..我從mysql查詢得到這個結果只...對不起。你能幫我嗎.. – PonrajPaul

+0

可能的重複:http://stackoverflow.com/questions/13469803/php-merging-two-array-into- one-array-also-remove-duplicates –

回答

2

那麼,如果你找不到內置函數來匹配你的特定情況(並且會有很多這樣的情況),那麼你可能需要自己試試?

name鍵映射陣列和填充一個新問題:

<?php 
$arr1 =array (0=>array(
    'user'=>'name1', 
    'age'=>'28'  
), 
    1=>array(
    'user'=>'name2', 
    'age'=>'58'  
), 
    2=>array(
    'user'=>'name3', 
    'age'=>'15'  
) 
); 

$arr2 =array (0=>array(
    'user'=>'name3', 
    'sex'=>'male'  
), 
    1=>array(
    'user'=>'name1', 
    'sex'=>'male'  
), 
    2=>array(
    'user'=>'name2', 
    'sex'=>'female' 
) 
); 

$result = array(); 
foreach ($arr1 as $key => $value) { 
    foreach ($arr2 as $k => $v) { 
     if($value['user'] == $v['user']) { 
      $result[$k]['user'] = $arr1[$k]['user']; 
      $result[$k]['age'] = $arr1[$k]['age']; 
      $result[$k]['sex'] = $arr2[$k]['sex']; 
     } 
    } 
} 

var_dump($result); 

array (size=3) 
    1 => 
    array (size=3) 
     'user' => string 'name2' (length=5) 
     'age' => string '58' (length=2) 
     'sex' => string 'male' (length=4) 
    2 => 
    array (size=3) 
     'user' => string 'name3' (length=5) 
     'age' => string '15' (length=2) 
     'sex' => string 'female' (length=6) 
    0 => 
    array (size=3) 
     'user' => string 'name1' (length=5) 
     'age' => string '28' (length=2) 
     'sex' => string 'male' (length=4) 

您可以使用排序鍵排序:

sort($result); 
var_dump($result); 

array (size=3) 
    0 => 
    array (size=3) 
     'user' => string 'name1' (length=5) 
     'age' => string '28' (length=2) 
     'sex' => string 'male' (length=4) 
    1 => 
    array (size=3) 
     'user' => string 'name2' (length=5) 
     'age' => string '58' (length=2) 
     'sex' => string 'male' (length=4) 
    2 => 
    array (size=3) 
     'user' => string 'name3' (length=5) 
     'age' => string '15' (length=2) 
     'sex' => string 'female' (length=6) 
+0

唯一的答案,實際上做他所要求的。 +1。 – Bryan

+0

其工作很好..感謝很多老兄。 – PonrajPaul

-1

我會用array_merge

像下面..

$result = array_merge($array1, $array2); 
print_r($result); 

然後使用array_unique獲得獨特的價值。

+0

感謝您的回覆。我試過但不工作 – PonrajPaul