如何从二维关联数组中取消/删除项目

时间:2015-09-01 19:42:25

标签: php arrays session

根据本论坛的建议,我正在重新编写涉及多维数组SESSIONS购物车的代码,以便产品ID是数组名称(我想我正在解释这个)。我可以添加到数组,但我无法删除任何内容。我正在使用数组将新项目数据添加到SESSIONS数组。下面的代码表示测试向数组添加项目,最后尝试并且无法删除项目。感谢您寻找错误的任何帮助。

echo '**************  STEP ONE **********************';
// Initialize array    
$_SESSION['cart'] = array();

// Array of newitem
$id = 181;
$newitem = array(
    $id => array(
        'quantity' => 1,
        'part_number' => '600N5630-501',
    )
);
// Add newitem to cart
$_SESSION['cart'][] = $newitem;
// Display cart array with one item
var_dump($_SESSION['cart']);


echo '**************  STEP TWO **********************';

// Array of newitem
$id = 33;
$newitem = array(
    $id => array (
        'quantity' => 1,
        'part_number' => '369A7170-11',
    )
);
// Add newitem to cart
$_SESSION['cart'][] = $newitem;
// Display cart array with two items
var_dump($_SESSION['cart']);


echo '**************  STEP THREE **********************';

// Array of newitem
$id = 34;
$newitem = array(
    $id => array (
        'quantity' => 1,
        'part_number' => '369A7171-15',
    )
);
// Add newitem to cart
$_SESSION['cart'][] = $newitem;
// Display cart array with three items
var_dump($_SESSION['cart']);


echo '**************  STEP FOUR **********************';

// Unset by ID
$id = 34;
unset($_SESSION['cart'][$id]);
// Display cart array with two items
var_dump($_SESSION['cart']);

1 个答案:

答案 0 :(得分:2)

当您使用$_SESSION['cart'][]时,它会使用下一个索引动态添加新数组项。然后在那个下添加另外两个数组。尝试使用特定的$id创建索引:

$id = 181;
$newitem = array(
           'quantity' => 1,
           'part_number' => '600N5630-501',
);
// Add newitem to cart
$_SESSION['cart'][$id] = $newitem;

或者你可以像这样添加/替换它们:

$id = 181;
$newitem = array(
    $id => array(
        'quantity' => 1,
        'part_number' => '600N5630-501',
    )
);
// Add newitem to cart
$_SESSION['cart'] = array_replace($_SESSION['cart'], $newitem);