基本上我从查询中得到了这个:
Array
(
[0] => Array
(
[period] => 2014-03
[val] => 2.19
[type] => TypeX
),
[1] => Array
(
[period] => 2014-03
[val] => 2.02
[type] => TypeY
)
)
使用foreach循环填充另一个数组,我们将调用DATA,我希望得到以下内容:
Array
(
[TypeX] => Array
(
[2014-03] => 2.19
)
[TypeY] => Array
(
[2014-03] => 2.02
)
)
整个事情是循环的,因为我的查询需要每次运行一段不同的时间。目前的例子,第二个循环将在2014-04运行。我的问题是当我第二次到达我的DATA阵列时,我想要这个:
Array
(
[TypeX] => Array
(
[2014-03] => 2.19
[2014-04] => 1.10
)
[TypeY] => Array
(
[2014-03] => 2.02
[2014-04] => 4.74
)
)
我的代码大致如下:
$data = array();
foreach($graph_period as $period){
$rows = Queryfunction($period,$WHERE,$byType);
foreach($rows as $row){
$data[$row['type']] = array($row['period']=>$row['val']);
}
}
因为第一级(TypeX,TypeY)的键是相同的,所以会覆盖valei。我如何附加数组而不是覆盖?
答案 0 :(得分:1)
foreach($rows as $row){
$data[$row['type']][$row['period']] = $row['val']);
}
答案 1 :(得分:0)
你只需要改变一点点。在您设置值的foreach内:
if( !isset($date[$row['type']]) ) {
$data[$row['type']] = array();
}
$data[$row['type']][$row['period']] = $row['val'];
因此,只有在数组不存在时才创建数组。