$arr = array();
while($row1 = $stmt->fetch(PDO::FETCH_ASSOC))
{
$case_code = $row1['case_code'];
$arr[$case_code]['type1'] += $row1['type1'];
$arr[$case_code]['type2'] += $row1['type2'];
.................
}
我注意到未定义的偏移量,未定义的索引。 我应该使用
if (!isset($arr[$case_code])) {
$arr[$case_code] = ''
}
if (!isset($arr[$case_code]['type1'])) {
$arr[$case_code]['type1'] = 0;
}
if (!isset($arr[$case_code]['type2'])) {
$arr[$case_code]['type1'] = 0;
}
或者还有其他更好的方法可以做到这一点。
答案 0 :(得分:2)
首先将它设置为一个数组(因为它似乎想将它用作数组。)然后你可以使用它。
$arr = array();
while($row1 = $stmt->fetch(PDO::FETCH_ASSOC))
{
$case_code = $row1['case_code'];
if (!isset($arr[$case_code])) { // check if the index was already set
$arr[$case_code] = array('type1' => 0, 'type2' => 0, ..., 'typeN' => 0); // set it first
}
$arr[$case_code]['type1'] += $row1['type1'];
$arr[$case_code]['type2'] += $row1['type2'];
.................
}