2017-03-01 44 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