php - 合并两个数组并得到一个新数组
问题描述
我有一个这样的关联数组:我需要合并两个数组和最后一个 hr rating 我需要添加 hrrating1 =,hr rating 2 = 像这样
array (
0 =>
array (
'skill_name' => 'JDK (Java Development Kit)',
'desc' => '',
'req_rating' => '2',
'user_rating' => '3',
'hrRating' => '2',
),
1 =>
array (
'skill_name' => 'Java Servlets',
'desc' => '',
'req_rating' => '4',
'user_rating' => '3',
'hrRating' => '3',
),
2 =>
array (
'skill_name' => 'JDK (Java Development Kit)',
'desc' => '',
'req_rating' => '2',
'user_rating' => '3',
'hrRating' => '2',
),
3 =>
array (
'skill_name' => 'Java Servlets',
'desc' => '',
'req_rating' => '4',
'user_rating' => '3',
'hrRating' => '4',
),
)
需要的输出:
array (
0 =>
array (
'skillName' => 'JDK',
'comments' => '',
'jobRating' => '2',
'userRating' => '3',
'skillGap' => '-1',
'hrRating1' => '7',
'hrRating2' => '2',
),
1 =>
array (
'skillName' => 'Java Servlets',
'comments' =>'',
'jobRating' =>'4',
'userRating' =>'3',
'skillGap' => '1',
'hrRating1' => '2',
'hrRating2' => '3',
),
)
我需要将两个数组与最后一列结合起来 hrRating 应该不同,例如 hrRating1 和 hrrating@ 这样有什么帮助吗????
解决方案
更新(单个数组输入)
我不知道我是否可以skill_name
用作数组键(可能不是),因此$tmp_skill
,$tmp_index
.
function process_collection($data) {
$tmp_skill = [];
$tmp_index = [];
$result = [];
foreach ($data as $k => $item) {
$skill = $item['skill_name'];
echo $skill.'<br>';
$idx = array_search($skill, $tmp_skill);
if ($idx === false) {
//$result[$idx]['_ratings'] = $item['hrRating'];
//continue;
$idx = count($tmp_skill);
$tmp_index[] = $idx;
$tmp_skill[] = $skill;
$result[$idx] = $item;
$result[$idx]['_ratings'] = [];
}
$result[$idx]['_ratings'][] = $item['hrRating'];
}
// conversion array of ratings to individual values 'hrRating1', 'hrRating2', ...
foreach($result as &$item) {
$i = 0;
foreach( $item['_ratings'] as $rate)
$item['hrRating' . (++$i)] = $rate;
unset($item['_ratings']);
unset($item['hrRating']);
}
return $result;
}
推荐阅读
- isabelle - 伊莎贝尔/霍尔 - 电路
- java - Java中深度嵌套的哈希图
- kubernetes - 如何从 kubernetes master 访问 etcd 集群端点
- web - 在 IIS 中无法使用端口号访问域名
- r - 在r中按名称和条件合并文件
- django - 在 ModelChoiceField 中添加多个标签 - Django
- javascript - flyTo() Leaflet - 我如何使用 onclick 监听器在我的地图上飞行
- node.js - 从 lambda 函数调用 Spotify API
- c# - C# 重命名 JSON 动态属性名
- android - 具有多种风格的 Android 构建中的 Ktlint 错误