我使用过array_merge();但是对于某些共振并不是我需要它的方式...所以我有多个数组,其信息几乎与以下相同......
$array1 = array (
'2014-06-01'=> array (
'date'=> '2014-06-01',
't1'=> 20,
't2'=> 5
);
'2014-06-02'=> array (
'date'=> '2014-06-02',
't1'=> 20,
);
'2014-06-03'=> array (
'date'=> '2014-06-03',
't1'=> 9,
't2'=> 2
);
);
$array2 = array (
'2014-07-01'=> array (
'date'=> '2014-07-01',
't1'=> 4,
't2'=> 1
);
'2014-07-02'=> array (
'date'=> '2014-07-02',
't1'=> 6,
't2'=> 3
);
'2014-07-03'=> array (
'date'=> '2014-07-03',
't1'=> 9,
);
);
这就是我如何将我的数组用于一个目的,但是我不想构建另一个查询以获得具有几乎相同信息的另一个数组,而是想知道如何从这些数组构建另一个数组或3个类似的数组...
我想要获得的最终数组是这样的......
$final_arr = array (
'01' => array (
't2_m_jun'=>5,
't2_m_jul'=>1,
);
'02' => array (
't2_m_jun'=>0,
't2_m_jul'=>3,
);
'03' => array (
't2_m_jun'=>2,
't2_m_jul'=>0,
);
);
现在,01,02,03等等是1到30或31的日期,具体取决于月份,所以从每个数组我都需要日期,如果索引是2014-06-01我只需要01并且从中我需要t2的值,并且对于第二个数组是相同的,以便我可以将来自t2的新键和值放在一起... ...
我不是很好的构建功能或使用数组,这就是我需要你帮助的原因 感谢您抽出宝贵时间阅读我的帖子。
答案 0 :(得分:1)
好吧,首先你需要将它们与array_merge放在一起,然后遍历它并构建新数组。这应该可以解决问题:
$new_array = array_merge($array1, $array2);
$final_arr = array();
foreach($new_array as $val) {
$timestamp = strtotime($val['date']);
$day = date('d', $timestamp);
if(empty($final_arr[$day])) {
$final_arr[$day] = array();
}
$month = strtolower(date('M', $timestamp));
$final_arr[$day]['t2_m_'.$month] = $val['t2'];
}