php三维数组改造大神进
本文介绍了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"]=>
string(6) ",18,18"
["11"]=>
string(3) ",09"
["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日
解决方案
$monthRs = [];
$monthCfg = ["01","02","03","04","05","06","07","08","09","10","11","12"];
foreach($arr as $key => $val){
foreach($val as $k=>$v){
$year = $v['year'];
if(in_array($k,$monthCfg)){
$monthRs[$k] = explode(',',$v);
}
}
$temp = [$year=>$monthRs];
$monthRs = array_merge($monthRs,$temp);
}
这篇关于php三维数组改造大神进的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文