0

私は本当にこれで立ち往生しています。次のような配列内の配列です。

Array ( [0] => Array ( [item] => product1 [unitprice] => 15 [quantity] => 1 ) [1] => Array ( [item] => product2 [unitprice] => 15 [quantity] => 1 ) )

以下を使用して特定のアイテムを削除しようとしました:

$pid=$_GET['id']; (where id = product1)

$delete=array_splice($_SESSION['cart'], array_search($id, $_SESSION['cart']), 1);
unset($delete);    

print_r($_SESSION['cart']);

これにより、アイテムがランダムに削除されるようです。どんな助けでも大歓迎です

4

2 に答える 2

2
<?php 
function searchForItem($id, $array) {
   foreach ($array as $key => $val) {
       if ($val['item'] === $id) {
           return $key;
       }
   }
   return null;
}

$pid=$_GET['id'];

$id = searchForItem($pid, $_SESSION['cart']);

unset($_SESSION['cart'][$id]);

?>
于 2013-01-29T07:37:57.863 に答える
0

もしかして:

foreach($_SESSION['cart'] as $index => $v) { 
    if(($key = array_search($pid, $v)) !== false) {
        unset($_SESSION['cart'][$index]);
    }
}
于 2013-01-29T07:37:51.413 に答える