首页 > 解决方案 > 将键更改为多维数组

问题描述

这是我的数组

Array
(
    [0] => Array
        (
            [0] => 710715609
            [1] => 3
            [2] => 2020-02-28 00:01:01/2020-02-25 00:01:01/2020-02-21 00:01:01
            [3] => 2
            [4] => sports/Mtunes/Astro/D50
            [5] => sports-1/Mtunes-1/Astro-1/D50-2
        )

    [1] => Array
        (
            [0] => 119774100
            [1] => 2
            [2] => 2020-02-22 00:01:01/2020-02-22 00:01:01
            [3] => 1
            [4] => sports/D50
            [5] => sports-1/D50-1
        )


)

我想像这样将数组中的这 5 个键更改为 (msisdn, logCount, logins, transc, actVas) 并且我已经尝试使用 array_fill_keys

有没有办法做到这一点 ?

标签: phparrays

解决方案


您可以映射和组合:

$array = array_map(function($v) {
                       return array_combine(["msisdn", "logCount", "logins",
                                             "transc", "actVas", "vasCount"], $v);
                   }, $array);

或步行并结合:

array_walk($array, function(&$v) {
                       $v = array_combine(["msisdn", "logCount", "logins", 
                                           "transc", "actVas", "vasCount"], $v);
                   });

您可以使用已定义的数组执行任一操作,use()例如:

$k = ["msisdn", "logCount", "logins", "transc", "actVas", "vasCount"];

$array = array_map(function($v) use($k) { return array_combine($k, $v); }, $array);
//or
array_walk($array, function(&$v) use($k) { $v = array_combine($k, $v); });

推荐阅读