PHP Sum Array - 对数组的所有元素求和

标签 php

我有一个数组如下:

$row当我输出整个数组时,它会产生以下内容:

1. I like crisps (38) 37% 55% 8% 0%

当我 echo数组的一部分我得到了我感兴趣的 4 个数字。

echo "<td class='set1'>". number_format($row[6], 0) ."%</td>";

以上代码输出以下4个数字:

37% 55% 8% 0%

我想做的是简单地将前两个数字相加(即 37% + 55%)并输出结果 (92%)。希望有帮助吗?

我还应该指出,该数组包含的信息远不止这四个数字。

根据要求:var_dump[6] 的输出

string(7) "36.8421" string(7) "28.9474" string(7) "39.4737" string(7) "23.6842" string(7) "28.9474" string(6) "8.0000" string(7) "23.6842" string(7) "39.4737" string(7) "11.1111" string(7) "13.8889" string(7) "11.1111" string(7) "13.8889" string(7) "17.1429" string(7) "20.0000" string(7) "28.5714" string(7) "25.7143" string(7) "34.2857" string(7) "28.5714" string(7) "28.5714" string(7) "28.5714" string(7) "20.5882" string(7) "20.5882" string(7) "11.7647" string(7) "29.4118" string(7) "17.6471" string(7) "20.5882" string(6) "3.0303" string(6) "2.9412" string(6) "3.0303" string(7) "38.2353" string(7) "12.1212" string(7) "27.2727" string(7) "18.1818" string(7) "33.3333" string(7) "34.7826" string(7) "17.3913" string(7) "30.4348" string(7) "17.3913" string(7) "17.3913" string(7) "13.0435" string(7) "30.4348" string(7) "27.2727"

有什么办法吗?

提前致谢

荷马。

完整代码 - 希望对您有所帮助:

if ($mysqli->multi_query($query)) {
do {
    /* store first result set */
    if ($result = $mysqli->store_result()) {
        $i = 1;
        while ($row = $result->fetch_row()) {
            if($i==1){
            echo "<tr><td class='qnum'><span class='bold'>". $row[3] .".</span></td><td class='qtext'> ". $row[4] ." (<span class='italics'>". $row[5] ."</span>)</td><td></td>";
            $i = 0;
            }

            echo "<td class='set1'>". number_format($row[6], 0) ."%</td>";
            $var =  $row[6];
        }
        echo "</tr>";
        $result->free();
    }
    /* print divider */
    //if ($mysqli->more_results()) {
      //  printf("-----------------\n");
    //}
} while ($mysqli->next_result());
}

$row[6] 出现的部分是四个数字 37% 55% 8% 0% 出现的地方 - 我想将这些数字中的前两个加在一起。

如果这有帮助,这是 SQL 查询的结果

response    q1  Responses   qnum    Question_Text   Total   percentage
4           4   14          1       I like crisps   38    36.8421
3           3   21          1       I like crisps   38    55.2632
2           2   3           1       I like crisps   38    7.8947
1           NULL    0       1       I like crisps   38    0.0000

我想做的是将 36.8421 和 55.2632 放在一起。

希望这对您有所帮助!

最佳答案

我想你可以使用 array_sum 的组合和 array_slice :

$arr = array(1, 2, 3, 4);
echo "First sum: " . array_sum(array_slice($arr,0,2));
echo '<br />';
echo "Second sum: " . array_sum(array_slice($arr,2,3));

输出:

First sum: 3
Second sum: 7

编辑:根据更新后的问题,您需要这样的东西:

$str = "55% 23% 12% 20%";

// the below line can be omitted because of the way PHP handles conversions
$str = str_replace('%', '', $str);
$arr = split(' ', $str);
echo "First sum: " . array_sum(array_slice($arr,0,2)) . '%';
echo '<br />';
echo "Second sum: " . array_sum(array_slice($arr,2,3)) . '%';

输出:

First sum: 78%
Second sum: 32%

关于PHP Sum Array - 对数组的所有元素求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2681731/

相关文章:

php - 如何使用PHP从ADORecordSet_mysql检索字段数,行数和字段名

php - 如何配置 PHPUnit 将数据提供者错误视为失败而不是警告?

php - 使用 Composer 安装 Laravel 4

php - 自定义 PHP 错误处理程序是否遵循 PHP 配置?

php - AJAX - 执行的 shell 命令的进度条

php - Android 应用程序与 PHP 服务器通信

javascript - PHP - JSON 字符串的 json_decode() 为空

php - 如何在需要默认参数时跳过参数

php - 在给定类别中使用通配符搜索 WordPress 帖子中的特定句子并输出唯一结果

php - 如何使用 Twig 显示动态图像 URL?