Php 基于点字段合并两个数组,因为用户有两个ID
激励计划。 业务部门在程序进行到一半时更改了用户ID,因此早期的点将归属于一个用户ID(在其自己的字段中),而后期的点将归属于另一个用户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'=>$
$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
是keytotal
和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的精彩见解。我很快会进一步调查的。我必须吃。