我有一个数组如下:
$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/