动态构建多个阵列

时间:2011-11-25 18:03:19

标签: php multidimensional-array

我试图建立一个动态多阵列,我的代码是下一个:

$stud_data=array('estudiante1','estudiante2','estudiante3');
  $dates_data=array('date1','date2','date3');
  $stud_datan=count($stud_data);

  for($i=0; $i<$stud_datan; $i++){
     $students[$i]['name']=$stud_data[$i];
     for ($j=0; $j<count($dates_data); $j++){
         $dates[$i][$j]=$stud_data[$j];
         $students[$i]['dates']=array($dates_data[$j]=>$i.$j);
     }
  }

当我'print_r $学生时,我报告下一个数组:

 Array (
       [0] => Array ( 
                [name] => estudiante1 
                [dates] => Array ( 
                         [date3] => 02 
                         ) 
                     ) 
       [1] => Array (  
                [name] => estudiante2  
                [dates] => Array (
                         [date3] => 12 

                         )
                    ) 

            )

但是我想构建这个结构,像这样的数组:

Array (
       [0] => Array ( 
                [name] => estudiante1 
                [dates] => Array ( 
                      [date1] => 01 
                      [date2] => 02 
                      [date3] => 03
                        )
                      ) 
       [1] => Array ( 
                [name] => estudiante2 
                [dates] => Array ( 
                      [date1] => 10 
                      [date2] => 11 
                      [date3] => 12 
                        )
                       ) 
      )

我的错误是什么?谢谢你的帮助。在子数组日期中,只显示值[date3]但不显示[date1] [date2]

2 个答案:

答案 0 :(得分:3)

$stud_data=array('estudiante1','estudiante2','estudiante3');
  $dates_data=array('date1','date2','date3');
  $stud_datan=count($stud_data);

  for($i=0; $i<$stud_datan; $i++){
     $students[$i]['name']=$stud_data[$i];
     $students[$i]['dates'] = array();
     for ($j=0; $j < count($dates_data); $j++){
         $students[$i]['dates'][$j] = $stud_data[$j];
     }
  }

答案 1 :(得分:0)

这是具有我想要的结构的数组。

$stud_data=array('estudiante1','estudiante2','estudiante3');
  $dates_data=array('date1','date2','date3');
  $stud_datan=count($stud_data);

  for($i=0; $i<$stud_datan; $i++){
     $students[$i]['name']=$stud_data[$i];
     $students[$i]['dates'] = array();
     for ($j=0; $j < count($dates_data); $j++){
         $students[$i]['dates'][$dates_data[$j]] = $i.$j;
     }
  }