Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 - Fatal编程技术网

PHP对每个循环值求和

PHP对每个循环值求和,php,Php,我想做一个简单的计算来总结我买的东西 使用$\u GET每次更新值时,它都应该保存在一个数组中,然后在执行“start”时,它给出总和。对不起,这里的代码只是谷歌搜索的,我不是一个真正的程序员。我不知道如何组合这两组代码(数组+和) 因此,我从中获得了这段代码,并对其进行了修改,使其更简单 <?php session_start(); $products = array($_GET["prod"]); $amounts = array($_GET ["cost"]); if ( !is

我想做一个简单的计算来总结我买的东西

使用
$\u GET
每次更新值时,它都应该保存在一个数组中,然后在执行“start”时,它给出总和。对不起,这里的代码只是谷歌搜索的,我不是一个真正的程序员。我不知道如何组合这两组代码(数组+和)

因此,我从中获得了这段代码,并对其进行了修改,使其更简单

<?php session_start();

$products = array($_GET["prod"]);
$amounts = array($_GET ["cost"]);

if ( !isset($_SESSION["total"]) ) {

$_SESSION["total"] = 0;
for ($i=0; $i< count($products); $i++) {
//   $_SESSION["qty"][$i] = 0;
$_SESSION["amounts"][$i] = 0;
  }
}

//---------------------------
//Reset
if ( isset($_GET['reset']) )
{
if ($_GET["reset"] == 'true')
{
unset($_SESSION["qty"]); //The quantity for each product
unset($_SESSION["amounts"]); //The amount from each product
unset($_SESSION["total"]); //The total cost
unset($_SESSION["cart"]); //Which item has been chosen
  }
}

//---------------------------
//Add
if ( isset($_GET["add"]) )
   {
   $i = $_GET["add"];
   $qty = $_SESSION["qty"][$i] + 1;
   $_SESSION["amounts"][$i] = $amounts[$i] * $qty;
   $_SESSION["cart"][$i] = $i;
   $_SESSION["qty"][$i] = $qty;
   }

  //---------------------------
  //Delete
  if ( isset($_GET["delete"]) )
   {
   $i = $_GET["delete"];
   $qty = $_SESSION["qty"][$i];
   $qty--;
   $_SESSION["qty"][$i] = $qty;
   //remove item if quantity is zero
   if ($qty == 0) {
    $_SESSION["amounts"][$i] = 0;
    unset($_SESSION["cart"][$i]);
   }
  else
  {
  $_SESSION["amounts"][$i] = $amounts[$i] * $qty;
   }
  }

  //cart
  if ( isset($_SESSION["cart"]) ) {

  $total = 0;
 foreach ( $_SESSION["cart"] as $i ) {

 echo '' . $products[$_SESSION["cart"][$i]] . ' - ' . $_SESSION["amounts"][$i] . '<br>';

 $total = $total + $_SESSION["amounts"][$i];
 }
 $_SESSION["total"] = $total;

echo'
<br>
Total : ' . $total . '
'; 

}

?>
但当我添加另一个会话时,add=1&prod=orange&cost=200并没有给出正确的答案

orange - 100
- 0

Total : 100
它应该会返回这个值,我不知道哪里会出错

apple - 100
orange - 200

Total : 300

是的,我不是一个程序员,但我正在努力解决一个大问题:)感谢您的帮助。

要获取可以使用的数组的总和,请执行以下操作。如果不知道您的
输入
数据,我们真的无法帮助任何不同,因为您没有告诉我们值是什么样子。我看到了数组的总和。假设我输入3,然后刷新站点并输入2。如果启动被执行,它应该给我5。你的代码在做什么?我看不出它在做什么。您有未分配的变量everywhere@Seed85因此,您正在搜索的是将数据保存在cookie或会话变量中(您可以通过谷歌搜索这两个变量来提供数千个教程),并获取保存在cookie/sessionvar中的任何内容,以便添加到其中。现在,这看起来像一个简单的购物车。例如,通过POST site.com/index.php?输入=3。然后发布site.com/index.php?input=2。现在,要得到总数,get site.com/index.php?start=yes它应该返回5您最好将此作为一个新问题发布,因为它不会被推到问题列表的顶部,并说明答案而不是问题。:-)
orange - 100
- 0

Total : 100
apple - 100
orange - 200

Total : 300