使用PHP将具有相似日期的组元素放入数组中

时间:2018-03-28 19:44:45

标签: php arrays

我需要将数组中的数据与PHP合并。

假设我有这个数组:

Array
(
    [0] => Array
        (
            [date] => 2018-03-26
            [person] => 120.00
            [color] => Black
        )
    [1] => Array
        (
            [date] => 2018-03-26
            [person] => 120.00
            [color] => Yellow
        )
    [2] => Array
        (
            [date] => 2018-03-27
            [person] => 120.00
            [color] => Red
        )
)

如何合并具有相似日期的数据以获得类似的内容?

Array
(
    [0] => Array
        (
            [2018-03-26] => Array
            (
                [0] => Array
                (
                    [person] => 120.00
                    [color] => Black
                )
                [1] => Array
                (
                    [person] => 120.00
                    [color] => Yellow
                )
            )
        )
    [1] => Array
        (
            [2018-03-27] => Array
            (
                [0] => Array
                (
                    [person] => 120.00
                    [color] => Red
                )
            )
        )
)

这是我在SO和Google上阅读一些文档时所尝试的:

$newArray = array();
foreach ($initialArray as $item) {
    if (!empty($newArray[$item['date']])) {
        $currentValue = $newArray[$item['date']];
        $newArray[$item['date']]['person'] = $item['person'];
        $newArray[$item['date']]['color'] = $item['color'];
    } else {
        $newArray[$item['date']] = $item;
    }
}

我在这里想念的是什么?

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了另一个解决方案:

$return = array();
foreach($datas as $val) {
    if (!isset($return[$val['date']])) {
        $return[$val['date']] = array();
    }
    $return[$val['date']][] = $val;
}