PHP: как заменить несколько значений массива $_SESSION

Впервые создаю корзину для покупок PHP/XML, и у меня возникли проблемы с функцией обновления корзины. У меня есть массив $quantities, который должен обновить значения $_SESSION["cart"]. Прямо сейчас последнее количество в массиве $quantities заменяет все значения $_SESSION["cart"] в отличие от первого значения $quantities, заменяющего первое значение $_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 )

? Спасибо.


person scrolls    schedule 29.12.2011    source источник


Ответы (1)


Используйте array_combine:

$newcart=array_combine(array_keys($_SESSION['cart']),$quantities);
person Eugen Rieck    schedule 29.12.2011