PHP:如何替换多个$_SESSION数组值


PHP: How to replace multiple $_SESSION array values

第一次制作PHP/XML购物车,我在更新购物车功能时遇到了麻烦。我有一个$ quantity数组,需要更新$_SESSION["cart"]值。现在,$ quantity数组中的最后一个数量正在替换所有的$_SESSION["cart"]值,而不是第一个$ quantity值替换第一个$_SESSION["cart"]值,第二个替换第二个,等等。下面是一个简单的例子,显示了我的问题和我遇到麻烦的代码。

print_r($SESSION["cart"]);
print_r($quantities);
foreach($quantities as $index=>$quantity)
{
    foreach($_SESSION["cart"] as $key=>$value)
    {
        $newcart = str_replace($value, $quantity, $_SESSION["cart"]);
    }
}
print_r($newcart);

的结果是:

Array ( [Pizzas.Tomato & Cheese.Small] => 1 [Homemade Lasagna Ravioli or Manicotti.With Sausage.One Size] => 1 )
Array ( [0] => 3 [1] => 4 )
Array ( [Pizzas.Tomato & Cheese.Small] => 4 [Homemade Lasagna Ravioli or Manicotti.With Sausage.One Size] => 4 ) 

如何使最后一个数组($newcart)为

Array ( [Pizzas.Tomato & Cheese.Small] => 3 [Homemade Lasagna Ravioli or Manicotti.With Sausage.One Size] => 4 )

?谢谢。

使用array_combine:

$newcart=array_combine(array_keys($_SESSION['cart']),$quantities);