用数组中的关联键替换数字数组键

Replace numeric array keys with associative keys from array

我有一个与此类似的数据集,我在其中尝试将 DATA 中的数字键值替换为 COLUMNS 中的相应值。我可以循环执行此操作,但我认为我没有以最有效的方式执行此操作。任何人都可以建议我没有考虑过的任何不错的功能吗?

现有样式

stdClass Object
(
    [COLUMNS] => Array
        (
            [0] => MATCHID
            [1] => SEASON
            [2] => COMPETITION
            [3] => ROUNDID
            [4] => ROUNDSORT
            [5] => ROUNDNAME
        )

    [DATA] => Array
        (
            [0] => Array
                (
                    [0] => 141627
                    [1] => 2013/2014
                    [2] => The Scottish Cup
                    [3] => 18
                    [4] => 11
                    [5] => Final
                )

            [1] => Array
                (
                    [0] => 140895
                    [1] => 2013/2014
                    [2] => The Scottish Cup
                    [3] => 16
                    [4] => 10
                    [5] => Semi-Final
                )
        )
)

想要的风格

stdClass Object
(
    [COLUMNS] => Array
        (
            [0] => MATCHID
            [1] => SEASON
            [2] => COMPETITION
            [3] => ROUNDID
            [4] => ROUNDSORT
            [5] => ROUNDNAME
        )

    [DATA] => Array
        (
            [0] => Array
                (
                    [MATCHID] => 141627
                    [SEASON] => 2013/2014
                    [COMPETITION] => The Scottish Cup
                    [ROUNDID] => 18
                    [ROUNDSORT] => 11
                    [ROUNDNAME] => Final
                )
            [1] => Array
                (
                    [MATCHID] => 140895
                    [SEASON] => 2013/2014
                    [COMPETITION] => The Scottish Cup
                    [ROUNDID] => 16
                    [ROUNDSORT] => 10
                    [ROUNDNAME] => Semi-Final
                )
        )
)
foreach ($data->DATA as $key => $array) {
    $data->DATA[$key] = array_combine($data->COLUMNS, $array);
}

$data是你展示的对象

遍历数据并将键与数据组合,参见array_combine

$data->DATA = array_map(function (array $entry) use ($data) {
    return array_combine($data->COLUMNS, $entry);
}, $data->DATA);