php - 如何将php数组格式化为所需的结果
问题描述
我需要在图表中显示一些数据。基本上我有一个来自数据库的数组,看起来像这样-
[
[0] =>[
[user_type] => 'Manager'
[total_count] => 3
],
[1] =>[
[user_type] => 'Director'
[total_count] => 2
]
]
还有一个user_type
是Trainee
。如果用户Trainee
有0
Total_count
它不会进入上面的数组。所以我需要手动添加。因此,首先将检查user_type
3 个 user_types 中哪个不存在于上述数组中。如果不存在则只需添加total_count
0
.
最后我想要的数组应该是这样的 -
[
['labels'] =>['Manager','Director','Trainee],
['dataset'] => [ 3, 2, 0 ]
]
请注意这里,正确的顺序非常重要。所以在上面的数组中 Manager 有 3 个,Director 有 2 个,Trainee 有 0 个总数。
提前致谢!
解决方案
尝试这个
$arr = array_combine(['labels','dataset'], array_map(null, $arr));
制作一个将不存在的 user_type 添加到数组中的函数
function setUserType($userType, $array) {
if(!in_array($userType, $array['labels'])){
array_push($array['labels'], $userType);
array_push($array['dataset'], 0);
}
return $array;
}
通过任何 user_type 调用函数,例如“经理”、“实习生”、“主管”
$arr = setUserType('Trainee', $arr);
或者制作一个包含所有用户类型的数组并运行一个循环
foreach(['Manager', 'Trainee', 'Director'] as $type) {
$arr = setData($type, $arr);
}
打印并显示最终值
print_r($arr);
die();
推荐阅读
- c# - 如何在c#中根据不同的设备自动缩放应用程序?
- string - 计算 Pandas 数组每个元素中每个点之间的数字数量
- spring - org.hibernate.hql.internal.ast.QuerySyntaxException:员工未映射[来自员工];
- angular - 在 Nginx 上部署 Angular 应用程序不会将授权标头发送到 Web 服务
- javascript - 函数返回未定义的值,有点困惑
- assembly - 将 24 位位图图像的红色分量加载到数组中
- amazon-s3 - 如何使用亚马逊 ses 在 s3 中为收到的电子邮件设置名称
- database - 在 postgres 数据库中创建了一个角色,无法删除 db 或连接
- javafx - 连接到 Gluon 移动设备中的 REST api 而不使用 gluon connect,但使用 Unirest 等其他库
- python - 更新帖子时如何将模板中的“created_at”字段替换为“updated_at”字段?