Php 基于点字段合并两个数组,因为用户有两个ID

Php 基于点字段合并两个数组,因为用户有两个ID,php,mysql,arrays,Php,Mysql,Arrays,激励计划。 业务部门在程序进行到一半时更改了用户ID,因此早期的点将归属于一个用户ID(在其自己的字段中),而后期的点将归属于另一个用户ID(在其自己的字段中) 假设我从数据中生成两个数组,如下所示: $result_array1[] = array( 'users_name'=>$users_first_name . ' ' . $users_surname, 'rank'=>'rank', 'users_type'=>$

激励计划。 业务部门在程序进行到一半时更改了用户ID,因此早期的点将归属于一个用户ID(在其自己的字段中),而后期的点将归属于另一个用户ID(在其自己的字段中)

假设我从数据中生成两个数组,如下所示:

$result_array1[] = array(
        'users_name'=>$users_first_name . ' ' . $users_surname,
         'rank'=>'rank', 
         'users_type'=>$users_type, 
         'users_dealer_name'=>$dealership, 
         'class'=>$class, 
         'users_sales_guild_id'=>$users_sales_guild_id,  
         'total'=>$total,
        );
$arr1 = array();
foreach($result_array1 as $row)
{
   $arr1[$row['users_name']] = $row;
}

$arr2 = array();
$arr3 = array();
foreach($result_array2 as $row)
{
   $arr2[$row['users_name']] = $row; // this one only if you need it somewhere else

   $row['total3'] = $arr1[$row['users_name']['total'] + $row['total2'];
   $arr3[] = array_merge($arr1[$row['users_name']], $row);
}

我设置的唯一键是
users\u sales\u guild\u id
users\u sales\u guild\u new\u id
,以及
total
total2

公用键是
users\u name

total
total2
是需要合并的点值

如何合并阵列,使最终的单个阵列看起来像:

$result_array3[] = array(
        'users_name'=>$users_first_name . ' ' . $users_surname,
         'rank'=>'rank', 
         'users_type'=>$users_type, 
         'users_dealer_name'=>$dealership, 
         'class'=>$class, 
         'users_sales_guild_id'=>$users_sales_guild_id,
         'users_sales_guild_new_id'=>$users_sales_guild_new_id,
         'total3'=>$total3,
        );

…其中key
total3
是key
total
total2
的合并值,您可以按如下方式重建数组:

$result_array1[] = array(
        'users_name'=>$users_first_name . ' ' . $users_surname,
         'rank'=>'rank', 
         'users_type'=>$users_type, 
         'users_dealer_name'=>$dealership, 
         'class'=>$class, 
         'users_sales_guild_id'=>$users_sales_guild_id,  
         'total'=>$total,
        );
$arr1 = array();
foreach($result_array1 as $row)
{
   $arr1[$row['users_name']] = $row;
}

$arr2 = array();
$arr3 = array();
foreach($result_array2 as $row)
{
   $arr2[$row['users_name']] = $row; // this one only if you need it somewhere else

   $row['total3'] = $arr1[$row['users_name']['total'] + $row['total2'];
   $arr3[] = array_merge($arr1[$row['users_name']], $row);
}

Ps:请确保用户名是唯一的!在大数据收集中,许多名称都是相同的。

Amal太棒了。谢谢你的帮助。不过,这个问题有道理吗?不,我不太清楚你(仍然)在问什么。也许其他人可以。这次我为你编辑了这个问题。祝你好运谢谢你,阿马尔穆拉利。你是一位绅士。谢谢你@Stefan的精彩见解。我很快会进一步调查的。我必须吃。