PHP数组重新排列为多维

marknt15

我有一个像这样的数组结构,并想将其重新排列为下面的结构。对更快/更简单的修复有什么建议吗?我已经添加了日期。谢谢!:)

输入:

Array
(
    [0] => Array
        (
            [user_id] => 255
            [display_name] => Mark
            [company_name] => Company_A
        )
    [1] => Array
        (
            [user_id] => 150
            [display_name] => Paul
            [company_name] => Company_A
        )
    [2] => Array
        (
            [user_id] => 25
            [display_name] => Hulk
            [company_name] => Company_B
        )
    [3] => Array
        (
            [user_id] => 50
            [display_name] => Bob
            [company_name] => Company_B
        )
)

输出:

Array
(
    [Company_A] => Array
        (
            [company_total_hours] => 20h 45m
            [employees] => Array
                (
                    [0] => Array
                        (
                            [user_id] => 255
                            [display_name] => Mark
                        )
                    [1] => Array
                        (
                            [user_id] => 150
                            [display_name] => Paul
                        )
                )
        )
    [Company_B] => Array
        (
            [company_total_hours] => 7h 30m
            [employees] => Array
                (
                    [0] => Array
                        (
                            [user_id] => 25
                            [display_name] => Hulk
                        )
                    [1] => Array
                        (
                            [user_id] => 50
                            [display_name] => Bob
                        )
                )
        )
)

我的尝试:

<?php
$company_names = array();
foreach ($records as $k => $v) {
    $company_names[] = $v->company_name;
}
$company_names = array_unique($company_names);

// hard coded testing
if (count($company_names) > 0) {
    foreach($company_names as $k2 => $v2) {
        $final_array[$v2]['company_total_hours'] = rand(1, 20);

        $final_array[$v2]['employees'] = array(
            array('user_id' => '255', 'display_name' => 'Mark'),
            array('user_id' => '150', 'display_name' => 'Paul')
        );
    }
}

// on-going testing right now here....
拉斯克拉特

我看不到您从哪里获取时间,因此我将其排除在外。

$i = 0;
foreach($vals as $keys => $arrays) {
        if(!isset($new[$arrays['company_name']]))
            $i = 0;
        $new[$arrays['company_name']]['employees'][$i]['display_name']  =   $arrays['display_name'];
        $new[$arrays['company_name']]['employees'][$i]['user_id']       =   $arrays['user_id'];
        $i++;
    }

给你:

Array
(
    [Company_A] => Array
        (
            [employees] => Array
                (
                    [0] => Array
                        (
                            [display_name] => Mark
                            [user_id] => 255
                        )

                    [1] => Array
                        (
                            [display_name] => Paul
                            [user_id] => 150
                        )

                )

        )

    [Company_B] => Array
        (
            [employees] => Array
                (
                    [0] => Array
                        (
                            [display_name] => Hulk
                            [user_id] => 25
                        )

                    [1] => Array
                        (
                            [display_name] => Bob
                            [user_id] => 50
                        )

                )

        )

)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章