PHP - 在foreach循环中取消设置数组元素

Mat*_*ins 2 php arrays foreach

您好我试图使用foreach循环删除数组元素,但它什么也没做.我需要索引完全消失而不是使其为null.这是我尝试过的:

foreach ($_SESSION['cart']  as &$arrays3) {
    if($arrays3['id'] == $id){
        unset($arrays3);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,每个键的数组值包含一个关联数组.

Rob*_*ill 5

你需要使用key你的foreach,并直接取消设置变量(来自会话):

foreach ($_SESSION['cart']  as $key => $arrays3) {
    if($arrays3['id'] == $id){
        unset($_SESSION['cart'][$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

取消设置$arrays3或其任何子节点只有在foreach循环的下一次迭代时才会有效,此时它将再次设置.