Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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_Mysql_Arrays_Array Sum - Fatal编程技术网

Php 不同数组中键的值

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]

因此,我有一个用PHP返回以下结果的查询,我尝试添加播放的小时数总和,我尝试了数组总和,但这似乎不起作用,我希望能够将播放的小时数的值添加为11,这样我就可以传递另一个函数:

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)可能要更加努力,还要添加一些说明。可能需要更努力,也要添加一些说明。数组_列的参数顺序不正确,这就是在遇到麻烦之前编写代码而不进行测试的结果。谢谢,我会解决这个问题的。你有错误的顺序排列列的参数。这就是你在没有测试代码的情况下,在遇到麻烦之前编写代码的结果。谢谢,我会修好的。