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

関連する問題