Php 如何正确标记数组?
我的数据库中有一个表,脚本在其中存储其值。 我希望实现以下目标,如果“描述”已经存在,我希望它显示一次,但将所有重复的行计算在内。下面的代码正是我想要的,但我想用“label”和“y”来标记它 目前我有以下代码:Php 如何正确标记数组?,php,arrays,Php,Arrays,我的数据库中有一个表,脚本在其中存储其值。 我希望实现以下目标,如果“描述”已经存在,我希望它显示一次,但将所有重复的行计算在内。下面的代码正是我想要的,但我想用“label”和“y”来标记它 目前我有以下代码: if($result = mysqli_query($link, $sql)){ if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_array($result)){
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 )
更改行:
$dataPoints[$row['description']]+=$row['hours']代码>
致:
要使用+=
运算符,应确保$dataPoint['y']
具有值,否则会显示警告,如警告:未定义的数组键“y”
编辑,仅统计说明
等于邮件
的记录:
IF ($row['description')=='Mail') {
$dataPoint['label'] = $row['description'];
$dataPoint['y'] += $row['hours'];
}
这不起作用,输出为:数组([label]=>Mail[y]=>194.75)194.75是表中所有小时的总和。我希望它只显示所有行的总数,其中“description”等于“Mail”,并使用您提供的额外信息进行更新。
IF ($row['description')=='Mail') {
$dataPoint['label'] = $row['description'];
$dataPoint['y'] += $row['hours'];
}