2014-11-25 121 views
0

我有几个关联数组,我想将它们组合成一个关联数组。例如:PHP将另一个关联数组中的元素附加到具有相同键的相同数组中

$array_1 = Array 
( 
    [0] => Array ([user_id] => 111 [first_name] => Jack [last_name] => Scotts [email]) 
    [1] => Array ([user_id] => 222 [first_name] => David [last_name] => Weathers [email]) 
    [2] => Array ([user_id] => 333 [first_name] => Helen [last_name] => Reynolds [email]) 
) 

$array_2 = Array 
( 
    [111] => Array 
    ( 
     [0] => Array([user_account] => 111_001 [account_type] => normal) 
     [1] => Array([user_account] => 111_002 [account_type] => vip) 
    ) 

    [222] => Array 
    ( 
     [0]=> Array([user_account] => 222_01 [account_type] => normal) 
    ) 
    [333] => Array 
    ( 
     [0]=> Array([user_account] => 333_01[account_type] => vip) 
    ) 
) 


Results: 
$new_array = Array 
( 
    [0] => Array 
    ( 
     [user_id] => 111 
     [first_name] => Jack 
     [last_name] => Scotts 
     [account_data] = > Array 
     ( 
      [0] => Array([user_account] => 111_001 [account_type] => normal) 
      [1] => Array([user_account] => 111_002 [account_type] => vip) 
     ) 
    ) 
    [1] => Array 
    ( 
     [user_id] => 222 
     [first_name] => David 
     [last_name] => Weathers 
     [account_data] => Array 
     ( 
      [0]=> Array([user_account] => 222_01 [account_type] => normal) 
     ) 
    ) 
    [2] => Array 
    ( 
     [user_id] => 333 
     [first_name] => Helen 
     [last_name] => Reynolds 
     [account_data] => Array 
     (
      [0] => Array ([user_account] => 333_01 [account_type] => vip) 
     ) 
    ) 
) 

尝试array_merge和array_merge都递归,但它不起作用。

+0

作为一般的音符,有很多的问题在这里一起“如何转换<一些奇怪的数据线结构>变成<这个不错的人>“。尽管在大多数情况下答案很简单,但我总是问自己,这个奇怪的结构是从哪里来的,是不是更容易改进_那部分。 – georg 2014-11-25 09:44:04

回答

1

对此,没有原生的PHP功能,因为这不是将数组合并在一起的非常标准的方法。你可以写一个循环,会为你做它虽然使用foreach()

$new_array = []; 

foreach($array_1 as $user){ 
    $temp = $user; 
    $temp['account_data'] = $array_2[$user['user_id']]; 
    $new_array[] = $temp; 
} 

Demo

0

您需要根据您的具体业务规则编写自己的函数。 PHP提供的基本合并操作是不够的。

相关问题