我有一个查询,它将带不同数量的列。 在我的查询下面仅显示了两行,但可能是四行,五行或更多行。 但是对于每个新数组,我需要插入三个不同的键(column_4,column_5和column_6)。
我正在尝试下面的代码,但是它将只对具有相同键的列求和,而这并不是我想要的:
$result = array();
foreach($arr[0] as $k => $v)
$result[$k] = array_sum(array_column($arr, $k));
我有下面的数组:
array(2) {
[0]=>
array(9) {
["column_1"]=>
string(15) "Primary"
["column_2"]=>
string(6) "298.50"
["column_3"]=>
string(6) "298.50"
}
[1]=>
array(9) {
["column_1"]=>
string(17) "Secondary"
["column_2"]=>
string(6) "694.50"
["column_3"]=>
string(6) "694.50"
}
}
我想要这个最终结果:
array(2) {
[0]=>
array(9) {
["column_1"]=>
string(15) "Primary"
["column_2"]=>
string(6) "298.50"
["column_3"]=>
string(6) "298.50"
["column_4"]=>
string(6) "298.50"
["column_5"]=>
string(6) "299.50"
["column_6"]=>
string(6) "300.50"
}
[1]=>
array(9) {
["column_1"]=>
string(17) "Secondary"
["column_2"]=>
string(6) "694.50"
["column_3"]=>
string(6) "694.50"
["column_4"]=>
string(6) "694.50"
["column_5"]=>
string(6) "695.50"
["column_6"]=>
string(6) "696.50"
}
}
列中的信息如下所示:
column_4: Average;
column_5: Average + 1
column_6: Average + 2
答案 0 :(得分:1)
如果您要在查询中执行此操作,则可以执行此操作
SELECT AVG(my_column_name) as column_4,
AVG(my_column_name) + 1 as column_5,
AVG(my_column_name) +2 as column_6
FROM tablename
答案 1 :(得分:0)
您需要循环$result
并通过添加到该位置的数组成员来对其成员执行计算:
foreach( $result as $k => $v )
{
$result[ $k ][ 'column_4' ] = ( $v[ 'column_2' ] + $v[ 'column_3' ] ) / 2;
$result[ $k ][ 'column_5' ] = $result[ $k ][ 'column_4' ] + 1;
// I will let you figure out column_6 for yourself :)
}