首页 > 解决方案 > 如何正确标记数组?

问题描述

我的数据库中有一个表,我的脚本在其中存储它的值。我想实现以下目标,如果“描述”已经存在,我希望它显示一次,但计算所有重复的行。以下代码完全符合我的要求,但我想用“标签”标记它,用“y”标记值目前我有以下代码:

if($result = mysqli_query($link, $sql)){
    if(mysqli_num_rows($result) > 0){
        while($row = mysqli_fetch_array($result)){
            foreach($result as $row){
            $dataPoints[$row['description']] += $row['hours'];
            }
            print_r($dataPoints);       
        }
    }

输出是:

Array ( [Mail] => 35)

但我希望 dataPoints 数组显示为:

Array ( [label] => Mail [y] => 35 )

标签: phparrays

解决方案


换行:$dataPoints[$row['description']] += $row['hours'];

至:

$dataPoint['label'] = $row['description'];
$dataPoint['y'] += $row['hours'];

要使用+=运算符,您应该确保它$dataPoint['y']有一个值,否则会显示警告,例如Warning: Undefined array key "y"

编辑,只计算description等于的记录Mail

IF ($row['description')=='Mail') {
   $dataPoint['label'] = $row['description'];
   $dataPoint['y'] += $row['hours'];
}

推荐阅读