繁体   English   中英

使用多个键合并数组(php)

[英]Merge array with multiple keys (php)

下面的数组是我目前的情况。 通过循环添加新数据。 我试过'array_merge_recursive'以及这个接受的答案 但它似乎不起作用或我使用它错了。

Array (
    [0] => Array (
            [Customer] => Array (
                    [Weekend] => Array (
                            [2016] => Array (
                                    [01] => Array (
                                            [0] => Array (
                                                    [id] => 54
                                                    [startDate] => 01-01-2016
                                                    [endDate] => 31-12-2016
                                                    [price] => 0
                                                )
                                        )
                                )
                        )
                )
        )
    [1] => Array (
            [Customer] => Array (
                    [Weekend] => Array (
                            [2018] => Array (
                                    [01] => Array (
                                            [0] => Array (
                                                    [id] => 56
                                                    [startDate] => 01-01-2018
                                                    [endDate] => 31-12-2018
                                                    [price] => 0
                                                )
                                        )
                                )
                        )
                )
        )
    [2] => Array (
            [Customer] => Array (
                    [Weekend] => Array (
                            [2019] => Array (
                                    [01] => Array (
                                            [0] => Array (
                                                    [id] => 57
                                                    [startDate] => 01-01-2019
                                                    [endDate] => 31-12-2019
                                                    [price] => 0
                                                )
                                        )
                                )
                        )
                )
        )
)

期望的情况是这样的:

Array (
                [Customer] => Array (
                    [Weekend] => Array (
                        [2016] => Array (
                            [01] => Array (
                                [0] => Array (
                                    [id] => 54
                                    [startDate] => 01-01-2016
                                    [endDate] => 31-12-2016
                                    [price] => 0
                                )
                            )
                        )
                        [2018] => Array (
                            [01] => Array (
                                [0] => Array (
                                    [id] => 56
                                    [startDate] => 01-01-2018
                                    [endDate] => 31-12-2018
                                    [price] => 0
                                )
                            )
                        )
                        [2019] => Array (
                            [01] => Array (
                                [0] => Array (
                                    [id] => 57
                                    [startDate] => 01-01-2019
                                    [endDate] => 31-12-2019
                                    [price] => 0
                                )
                            )
                        )
                    )
                )
            )

如果需要任何其他信息,请询问! 新来的

很确定这会奏效:

$result = call_user_func_array('array_merge_recursive', $array);

这应该做你想要的:

$new_arr = [];
$arr = // Your current array;

foreach ($arr as $customer)
{
    foreach ($customer['Weekend'] as $year => $z)
    {
        foreach($z as $month => $y)
        {
            foreach($y as $entry)
            {
                Store($year, $month, $entry, $new_arr);
            }
        }
    }

}

function Store($year, $month, $entry, & $new_arr)
{
    if ( ! isset($new_arr['customer'][$year]))
    {
        $new_arr['customer'][$year] = array();
    }
    if ( ! isset($new_arr['customer'][$year][$month]))
    {
        $new_arr['customer'][$year][$month] = array();
    }
    $new_arr['customer'][$year][$month][] = $entry;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM