Php 不同数组中键的值
因此,我有一个用PHP返回以下结果的查询,我尝试添加播放的小时数总和,我尝试了数组总和,但这似乎不起作用,我希望能够将播放的小时数的值添加为11,这样我就可以传递另一个函数:Php 不同数组中键的值,php,mysql,arrays,array-sum,Php,Mysql,Arrays,Array Sum,因此,我有一个用PHP返回以下结果的查询,我尝试添加播放的小时数总和,我尝试了数组总和,但这似乎不起作用,我希望能够将播放的小时数的值添加为11,这样我就可以传递另一个函数: Array ( [id] => 1 [team_id] => 1 [hours_played] => 1 ) Array ( [id] => 2 [team_id] => 1 [hours_played] => 4 ) Array ( [id]
Array
(
[id] => 1
[team_id] => 1
[hours_played] => 1
)
Array
(
[id] => 2
[team_id] => 1
[hours_played] => 4
)
Array
(
[id] => 3
[team_id] => 1
[hours_played] => 6
)
我有点迷路了,我是否需要将可存储阵列存储在另一个阵列中才能执行此操作?上面的结果来自sql查询,是打印$row变量时打印在页面上的结果
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)){
print_r($row);
}
你真的很接近。您只需将每个数组的第3个索引添加到一起:
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$total = 0;
while($row = mysql_fetch_assoc($res)){
$total += $row['hours_played'];
}
相反,您也可以使用编号索引
$total = 0;
while($row = mysql_fetch_assoc($res)){
$total += $row[2]; // indexes start at 0
}
echo $total; // Will print 11 if your arrays you posted are correct.
此外,警告!!您需要使用mysqli,而不是安全性差得多的、现在已被弃用的mysql。您已经非常接近了。您只需将每个数组的第3个索引添加到一起:
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$total = 0;
while($row = mysql_fetch_assoc($res)){
$total += $row['hours_played'];
}
相反,您也可以使用编号索引
$total = 0;
while($row = mysql_fetch_assoc($res)){
$total += $row[2]; // indexes start at 0
}
echo $total; // Will print 11 if your arrays you posted are correct.
此外,警告!!您需要使用mysqli,而不是安全性差得多、现在已被弃用的mysql,这是最重要的
. 它们不再得到维护。
阅读有关使用的内容,并将现有代码更改为使用或
您可以在while循环中总共玩上几个小时。试试这个:
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$total_hours_played = 0; // initialize a variable to get sum of hours
while($row = mysql_fetch_assoc($res)){
$total_hours_played += $row['hours_played'];
}
echo $total_hours_played;
最重要的
. 它们不再得到维护。
阅读有关使用的内容,并将现有代码更改为使用或
您可以在while循环中总共玩上几个小时。试试这个:
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$total_hours_played = 0; // initialize a variable to get sum of hours
while($row = mysql_fetch_assoc($res)){
$total_hours_played += $row['hours_played'];
}
echo $total_hours_played;
您可以对获取结果并将其分配到数组后播放的所有列进行求和,如下所示
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$result = array();
while($row = mysql_fetch_assoc($res)){
$result[] = $row;
}
$sum = array_sum(array_column($result, "hours_played"));
echo $sum;
..或者你可以在循环结果时对其进行总结
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$sum = 0;
while($row = mysql_fetch_assoc($res)){
$sum += $row['hours_played'];
}
echo $sum;
或者,如果您只需要播放的总小时数,您可以直接在一个查询中使用MySQL中的COUNT
$sql = "SELECT SUM(hours_played) as sum_hours_played FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
echo $row['sum_hours_played'];
警告
. 它们不再得到维护。
看到了吗?
而是学习,并使用或
-可以帮助您确定哪一列。您可以对获取结果并将其分配到数组后播放的所有列进行求和,如下所示
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$result = array();
while($row = mysql_fetch_assoc($res)){
$result[] = $row;
}
$sum = array_sum(array_column($result, "hours_played"));
echo $sum;
..或者你可以在循环结果时对其进行总结
$sql = "SELECT * FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$sum = 0;
while($row = mysql_fetch_assoc($res)){
$sum += $row['hours_played'];
}
echo $sum;
或者,如果您只需要播放的总小时数,您可以直接在一个查询中使用MySQL中的COUNT
$sql = "SELECT SUM(hours_played) as sum_hours_played FROM table1 WHERE team_id = 1";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res);
echo $row['sum_hours_played'];
警告
. 它们不再得到维护。
看到了吗?
而是学习,并使用或
-可以帮助您决定使用哪一个。为什么要使用mysql?另外,如果您没有使用其他列,请从表1中选择SUMhours(团队id=1为什么要使用mysql)?此外,如果您没有使用其他列,请从表1中选择SUMhours(团队id=1)可能要更加努力,还要添加一些说明。可能需要更努力,也要添加一些说明。数组_列的参数顺序不正确,这就是在遇到麻烦之前编写代码而不进行测试的结果。谢谢,我会解决这个问题的。你有错误的顺序排列列的参数。这就是你在没有测试代码的情况下,在遇到麻烦之前编写代码的结果。谢谢,我会修好的。