用特定id替换数组


Replacing an array with specific id?

我有这个数组:

Array
(
    [cart] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [size] => XS
                    [count] => 1
                )
            [1] => Array
                (
                    [id] => 2
                    [size] => XS
                    [count] => 1
                )
        )
)

例如,在这个多维数组中,我如何替换id为2的数组?

我正在建立一个网上商店系统,想把T恤衫添加到购物车中。如果已经添加的文章将再次添加,它应该用新的输入(新的大小,新的计数)替换cart会话变量。

我如何检查是否已经添加了特定的id?

不确定你到底在寻找什么,但我认为这就可以了。

foreach ($array['cart'] as &$item) {
    if ($item['id'] == $_POST['id']) {
        $item = $_POST;
    }
} unset($item);

给定带有n个产品的$cart和$article作为新添加的文章:

$c = count($cart);
for($i=0;$i<$c;$i++) {
    if ($cart[$i]['id'] == $article['id']) {
        $cart[$i] = $article;
    }
}

如果您使用product_id作为密钥,则仅使用

if (isset($cart[$article['id']]) {
    $cart[$article['id']] = $article;
}

由于每个产品都有自己的唯一id,您可以使用产品id作为数组中的索引,因此您可以执行以下操作:

// pseudo code
function add2Cart($product_id, $count, $size) {
   global $cart;
   $cart[$product_id] = array(
      'count' => $count,
      'size' => $size
   );
)

然后你会有一个数组,看起来像:

[cart] => Array
    (
        [1] => Array
            (
                [size] => XS
                [count] => 1
            )
        [2] => Array
            (
                [size] => XS
                [count] => 1
            )
    )

其中,每个索引都是一个产品id号。