2017-03-01 39 views
0

我想填充分块数组中的键。数组是这样的:向分块数组填充键

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

我想要做的是,以填补每1键阵列来7

我的代码如下所示:

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; 

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

[ 
    { 
    "1": "yes", 
    "2": "yes", 
    "3": "yes", 
    "4": "yes", 
    "5": "yes", 
    "6": "yes", 
    "7": "yes" 
    }, 
    { 
    "1": "yes", 
    "2": "yes", 
    "3": "yes", 
    "4": "yes", 
    "5": "yes", 
    "6": "yes", 
    "7": "yes" 
    }, 
    { 
    "1": "no", 
    "2": "no", 
    "3": "no", 
    "4": "no", 
    "5": "no", 
    "6": "no", 
    "7": "no" 
    }... 

任何想法,我怎么能得到我想要的输出?

+0

难道真的那么重要,每增加内部元件的关键?数据来自哪里?加1可能更符合逻辑。 – jeroen

+2

在每个子阵列的开头添加一个虚拟新条目,以将现有的键从0-6改为1-7;然后取消设置虚拟键0.'array_walk($ myArrayData,function(&$ values){array_unshift($ values,'DUMMY'); unset($ values [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

+0

它的工作完美!感谢你和马克贝克 – ShabbyAbby

+0

你最欢迎的伴侣 – rahulsm