2012-06-12 130 views
-2

我有2个数组。需要将两个数组组合/合并成1个数组。我不知道如何去做。我的第一个数组是这样的:类似的键合并阵列

Array 
(
    [A626] => Array 
    (
     [name] => MUHAMMAD FIZMIE ZAKARIA 
     [email] => [email protected] 
     [empid] => A626 
    ) 

    [A672] => Array 
    (
     [name] => MOHD FARID ISMADI 
     [email] => 
     [empid] => A672 
    ) 

    [A1149] => Array 
    (
     [name] => MOHD JAZLI BIN MOHD ZABRI 
     [email] => [email protected] 
     [empid] => A1149 
    ) 

) 

第二个数组是:

Array 
(
    [A1149] => Array 
    (
     [empid] => A1149 
     [online] => 1 
     [ip] => 127.0.0.1 
    ) 

    [A626] => Array 
    (
     [empid] => A626 
     [online] => 0 
     [ip] => 
    ) 

    [A672] => Array 
    (
     [empid] => A672 
     [online] => 0 
     [ip] => 
    ) 

) 

预期的结果应该是这样的:

Array 
(
    [A626] => Array 
    (
     [name] => MUHAMMAD FIZMIE ZAKARIA 
     [email] => [email protected] 
     [empid] => A626 
     [online] => 0 
     [ip] => 
    ) 

    [A672] => Array 
    (
     [name] => MOHD FARID ISMADI 
     [email] => 
     [empid] => A672 
     [online] => 0 
     [ip] => 
    ) 

    [A1149] => Array 
    (
     [name] => MOHD JAZLI MOHD ZABRI 
     [email] => [email protected] 
     [empid] => A1149 
     [online] => 127.0.0.1 
     [ip] => 1 
    ) 

) 

请帮助我。谢谢

+2

['array_merge_recursive']( http://br.php.net/manual/en/function.array-merge-recursive.php) – bfavaretto

+0

我会认为接受的答案太复杂,因此不是很有帮助。它可能对你有所帮助,但对你的情况有点太具体。正如你接受它,我会投票结束你的问题,因为它没有太大的帮助。 – hakre

回答

0
foreach ($arr1 as $key => $user) { 
    $arr3[$key] = array(
     'name' => $user['name'], 
     'email' => $user['email'], 
     'empid' => $user['empid'], 
     'online' => $arr2[$key]['online'], 
     'ip' => $arr2[$key]['ip'], 
    ); 
} 
+0

非常感谢。非常有帮助 – softboxkid

0

array_merge_recursive确实是that。在你的阵列中,你将在empid上有一个额外的等级,因为它在两个阵列上。例如,结果A626

[A626] => Array 
    (
     [name] => MUHAMMAD FIZMIE ZAKARIA 
     [email] => [email protected] 
     [empid] => Array 
      (
       [0] => A626 
       [1] => A626 
      ) 

     [online] => 0 
     [ip] => 
    ) 

你可以忽略这一点,你必须通过获取父键上foreach循环到empid更容易获得:

foreach($result as $empid=>$data) { 
    // ... 
}