首页 > 解决方案 > 如何将php数组格式化为所需的结果

问题描述

我需要在图表中显示一些数据。基本上我有一个来自数据库的数组,看起来像这样-

[
    [0] =>[

            [user_type] => 'Manager'
            [total_count] => 3

        ],


    [1] =>[

            [user_type] => 'Director'
            [total_count] => 2

        ]

]

还有一个user_typeTrainee 。如果用户Trainee0 Total_count它不会进入上面的数组。所以我需要手动添加。因此,首先将检查user_type3 个 user_types 中哪个不存在于上述数组中。如果不存在则只需添加total_count 0.

最后我想要的数组应该是这样的 -

[
    ['labels'] =>['Manager','Director','Trainee],


    ['dataset'] => [ 3, 2, 0 ]

]

请注意这里,正确的顺序非常重要。所以在上面的数组中 Manager 有 3 个,Director 有 2 个,Trainee 有 0 个总数。

提前致谢!

标签: phparraysphp-7

解决方案


尝试这个

$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();

演示https://3v4l.org/UbiXn


推荐阅读