Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中的PHP数据检索_Php_Arrays - Fatal编程技术网

数组中的PHP数据检索

数组中的PHP数据检索,php,arrays,Php,Arrays,我有一个具有列的表: S.NO month year total 1 jan 2017 1000 2 feb 2017 5000 3 jan 2018 3000 我希望获取数据并以这样的方式进行排列,即使用PHP将相似月份的总值相加并存储在数组中的键值对中。 数据只会持续几年。 e、 g 2017年->6000年 2018->3000等等 提前谢谢 假设表结构是这样的 查询应该是 按年份从t1组中选择总和(tt),年份 样本输出: 在PH

我有一个具有列的表:

S.NO  month year  total
1     jan   2017  1000 
2     feb   2017  5000 
3     jan   2018  3000 
我希望获取数据并以这样的方式进行排列,即使用PHP将相似月份的总值相加并存储在数组中的键值对中。 数据只会持续几年。 e、 g

2017年->6000年
2018->3000等等


提前谢谢

假设表结构是这样的

查询应该是

按年份从t1组中选择总和(tt),年份

样本输出:

在PHP的while循环中, 使用类似(只是提供一个样本,而不是完整的东西)

while($row=mysqli\u fetch\u assoc($results))
$array[$row['yr']=$row['SUM(tt)']

请尝试-

$result = mysql_query("SELECT * FROM test1");
$newarray = array();
$i = 1; 
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    if($i==1){
        array_push($newarray, array("year"=>$row["year"], "total"=>$row["total"]));
    }else{
        $sr = array_search($row["year"], array_column($newarray, 'year'));
        if($sr === false){
            array_push($newarray, array("year"=>$row["year"], "total"=>$row["total"]));
        }else{
            $newarray[$sr]["total"]+=$row["total"];
        }
    }
    $i++;
}
print_r($newarray);

到目前为止你试过什么?请参考。谢谢!!它起作用了。。这是一个简单的问题,但被卡住了。谢谢