2016-05-20 10 views
-1
私のPHPコードは次のようになります
<?php 
    $year = array(2015,2016); 
    $no = array(1,2,3,4,5,6,7,8,9,10,11,12); 

    $dr = []; 
    foreach ($year as $yr) 
    { 
     $ar = []; 
     foreach ($no as $ss) 
     { 
      $aer['value'] = [12]; 

     } 

     array_push($dr,$ar); 

    } 
    //print_r($dr); 
?> 

が...次のコードの出力は以下のように見えるとのデータの取得[0] =>配列([値] = 12)...キー値

しかし、私は次の形式で出力を取得する方法..次の形式で出力する必要があります。

array(
[2015]=>array 
     (
      [0]=>array([value]=>12) 
      [1]=>array([value]=>12) 
      : 
      : 
      [11]=>array([value]=>12) 

     ) 
    [2016]=>array 
     (
      [0]=>array([value]=>12) 
      [1]=>array([value]=>12) 
      : 
      : 
      [11]=>array([value]=>12) 

     ) 
    ) 
+0

すべての子値を???? –

+0

あなたは '$ year'の内容に何も指定しませんでした。おそらくそれは良い場所です。残りは正常に機能しています。 – x13

答えて

2

それを作ります容易:Working Example

年をループし、毎年繰り返し月の数をループする必要があります。そして、12の値を最初の配列としてforstインデックスに格納する必要があります。内側の配列の12の数字とすべての数字には、インデックスvalueと値12の配列も含まれています。 array_map機能使用

$year = array(2015,2016); 
$no = array(1,2,3,4,5,6,7,8,9,10,11,12); 

$dr = []; 
foreach ($year as $yr){ 
    foreach($no as $ss){ 
     $dr[$yr][] = array("value" => 12); 
    } 
} 
print_r($dr); 
+1

@Frayne Konokに感謝しています... – shalin

0

ショートソリューション:12として

$no_arr = array_map(function($v) { return ['value' => 12]; }, $no); 
$result = array_map(function($v) use($no_arr){ return [$v => $no_arr]; }, $year); 

print_r($result);