繁体   English   中英

如何从数组中的多个重复项中删除仅一个元素在php中

[英]How to remove only one element from array in multiple duplicates in php

我正在写代码在php中添加和删除数组。 阵列根据我的要求成功推入。 现在我要删除数组元素。 但这是条件。 我在此数组中有重复的值。 所以我只想删除重复值中的一个元素,而不是全部

这是代码

<?php
session_start();
$id = $_POST['value'];

$_SESSION['id'] = $id ;

if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
}
array_push($_SESSION['cart'], $id);


echo true;



?>

这是我得到的数组

Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 0 [4] => 1 [5] => 1 [6] => 6 [7] => 0 [8] => 0 [9] => 2 [10] => 0 [11] => 0 [12] => 5 [13] => 1 [14] => 1 ) 

例如。 我在此数组中有多个0元素。 所以我只想删除一个元素,而不是全部。

谢谢

尝试这个 :

$newarray = array();
$alreadydeleted = array();
foreach ($oldarray AS $key => $value)
{
    if (!in_array($value, $newarray) || in_array($value, $alreadydeleted))
        $newarray[$key] = $value;
    else
        $alreadydeleted[$key] = $value;
}

而且您应该删除一个重复的新数组

您不应该照原样继续,而要花一些时间重新格式化 您是购物车,这可以做得更容易且更适合未来。 当这个项目的规模和复杂性增加时, 它会再次困扰您 (建造5家[小]商店教会了我这一点)。

与其添加一个值(即产品的ID),不如添加一个 (即产品的ID)以及有关其信息的数组,例如数量。

$_SESSION['cart'] = array();

// to add a product:
$_SESSION['cart'][ $product_id ] = array('quantity'=>5);

// To remove from your array:
unset($_SESSION['cart'][ $product_id ]);

// To change the amount
$_SESSION['cart'][ $product_id ]['quantity'] = $newValue;
// Or, alternatively:
$_SESSION['cart'][ $product_id ]['quantity'] += 1; // add one.
<?php
session_start();
$id = $_POST['value'];

$_SESSION['id'] = $id ;

if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
}

//You can try this
if(!array_search($id,$_SESSION['cart'],TRUE))
{
    array_push($_SESSION['cart'], $id);
}

//OR can do this after array_push
$new_unique_array = array_unique($_SESSION['cart']);


echo true;



?>
if (($key = array_search(0, $array)) !== false) {
    unset($array[$key]);
}

因此,第一个出现的值0将删除。 尝试这个

要从$_SESSION['cart']删除一个ID实例,可以使用array_search在该数组中查找发布的值,如果找到,则返回其键。

$key = array_search($_POST['value'], $_SESSION['cart']);

array_search将返回第一个匹配的键(因此该键仅用于一项)。

如果找到一个键,则取消设置该键,您将仅删除相应值之一。

if ($key !== false) unset($_SESSION['cart'][$key]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM