php数组改造拼装

array(2) {
  [0]=>
  array(15) {
    ["t_id"]=>
    string(2) "87"
    ["b_id"]=>
    string(2) "21"
    ["year"]=>
    string(4) "2018"
    ["01"]=>
    string(6) ",09,16"
    ["02"]=>
    NULL
    ["03"]=>
    NULL
    ["04"]=>
    NULL
    ["05"]=>
    NULL
    ["06"]=>
    NULL
    ["07"]=>
    NULL
    ["08"]=>
    NULL
    ["09"]=>
    NULL
    [10]=>
    NULL
    [11]=>
    NULL
    [12]=>
    NULL
  }
  [1]=>
  array(15) {
    ["t_id"]=>
    string(2) "86"
    ["b_id"]=>
    string(2) "21"
    ["year"]=>
    string(4) "2017"
    ["01"]=>
    NULL
    ["02"]=>
    NULL
    ["03"]=>
    NULL
    ["04"]=>
    string(0) ""
    ["05"]=>
    string(15) ",23,23,24,24,23"
    ["06"]=>
    string(9) ",20,12,15"
    ["07"]=>
    string(6) ",19,10"
    ["08"]=>
    string(0) ""
    ["09"]=>
    string(0) ""
    [10]=>
    string(6) ",18,18"
    [11]=>
    string(3) ",09"
    [12]=>
    NULL
  }
}

上面的数组是从数据库读出来的
上面的year是年份 01 到 12是一月到十二月 然后,16,17,25 是日期

怎么弄成 下面的那种格式的尼!大神帮帮忙

array(
      '2017' => array(
      '04'=>array('15','20'),
      '05'=>array('05','18'),
      '11'=>array('11','19'),
     ),
    '2018' => array(
      '03'=>array('15','20'),
      '06'=>array('05','18'),
      '11'=>array('11','19'),
     ),

2017表示年份 04表示月份 15,20表示日期15日 20日

阅读 1.9k
1 个回答

$a = array(

        array(
            'year'=>'2017',
            'one'=>',16,17,25,27,18,27',
            'two'=>'',
            'three'=>',16,17,25,27,18,19,15,24'
        ),
        array(
            'year'=>'2018',
            'one'=>'',
            'two'=>',16,17,25,27,18,27',
            'three'=>',16,17,25,27,18,19,15,24'
            ),
        );

    foreach($a as $key => $value){
        $year = $value['year'];
        unset($value['year']);
        foreach($value as $k => $v){
            $result = explode(',',substr($v,1));
            $time[$year][$k] = $result;
        }
    }
    
    var_dump($time);
    
    最上面还有一行 $a = array(  显示不了··
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题