我有这个数组:
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号。