从数组中删除项目?

时间:2012-05-04 13:32:28

标签: php

我已经从PHP会话变量创建了一个数组,现在我正在尝试使用ajax(在jQuery中)从数组中删除一个元素。
到目前为止,我已经得到了以下代码:

$val = $_SESSION['enquiry-basket'];
$array = explode($val);

foreach ($enquiries as $a => $q) {
    if ($q == $_POST['product_id']) {
        unset($array[$a]);
    }
}

唯一的问题是,它不会删除该项目 任何人都可以解释原因,并告诉我如何解决它?

修改

对不起伙计们。我之所以提到jQuery,是因为我使用jQuery ajax调用来处理上面显示的PHP ajax查询运行正常,因为它会在ajax返回成功后处理一些javascript好东西(从HTML中删除div)。
我添加了分隔符(不能相信我错过了它)但是元素没有' t仍然从阵列中移除。
我从来不擅长多维数组,所以打印的数组是:

Array ( [0] => 6 [1] => 8 ) 

看起来对我来说,但我是数组中的业余爱好者。 (6和8当然是我插入的字符串)

5 个答案:

答案 0 :(得分:8)

explode缺少第一个参数:

explode(',', $val);

答案 1 :(得分:2)

您要从$ array中删除项目,而不是从$ _SESSION ['inquiry-basket']中删除。

答案 2 :(得分:1)

爆炸功能应该有两个参数。但是你只给出了数组的名称。 爆炸(分离器,串,限位);

答案 3 :(得分:1)

如果我理解你正在尝试做什么,问题是JQuery运行客户端,这意味着服务器端的PHP数组在每个来自Ajax的请求之间消失。唯一剩下的数组是$ _SESSION。

如果您想使用AJAX,则需要直接从$ _SESSION中删除。任何其他东西都是无用的,因为数组和变量在每次调用之间“消失”。

答案 4 :(得分:1)

爆炸功能主要是一个问题,缺少第二个参数:

更改自:

$array = explode($val);

要:

$array = explode('~',$val);  // ~ is a delimiter