填充分块数组的键

时间:2017-03-01 10:34:08

标签: php arrays key fill

我试图填充我的分块数组中的密钥。数组看起来像这样:

report.scheduler.mail.sender.from=yourname@yourdomain.com

我想要做的是用1到7的键填充每个数组。

我的代码如下所示:

{
  "0": [
    "yes",
    "yes",
    "no",
    "no",
    "no",
    "no",
    "no"
  ],
  "1": [
    "no",
    "no",
    "yes",
    "no",
    "no",
    "no",
    "no"
  ],
  "2": [
    "no",
    "no",
    "yes",
    "no",
    "no",
    "no",
    "no"
  ]
}

我尝试使用array_fill_keys但我总是得到相同的输出:

function fillKeys($keys, $value) {
    $return = array();
    foreach ( $keys as $key => $val ) {
        $return[is_array($val) ? $key : $val] = is_array($val) ? fillKeys($val, $value) : $value;
    }
    return $return;
}

    $test = array(1, 2, 3, 4, 5, 6, 7);

    $chunked = array_chunk($zones, 7);

    $zone = array();
    foreach($chunked as $days) {
        foreach($days as $value) {
            $zone[] = fillKeys($test, $value);
        }

    }

    return $zone;

知道如何获得我想要的输出吗?

1 个答案:

答案 0 :(得分:-1)

试试这个,

$arr= [
    "0" => [
        "yes",
        "yes",
        "no",
        "no",
        "no",
        "no",
        "no",
    ],
    "1" => [
        "no",
        "no",
        "yes",
        "no",
        "no",
        "no",
        "no",
    ],
    "2" => [
        "no",
        "no",
        "yes",
        "no",
        "no",
        "no",
        "no",
    ],
];
array_walk($arr, function (&$values) {
    array_unshift($values, 'Test');
    unset($values[0]);
});
echo json_encode($arr);

以下是工作代码link