Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unset只删除php Unset()方法的第一个结果_Php - Fatal编程技术网

Unset只删除php Unset()方法的第一个结果

Unset只删除php Unset()方法的第一个结果,php,Php,我不确定这是不是一个愚蠢的问题,但找不到任何东西,主要是因为我不知道如何表达它 我有一个数组 $array1 = array(apple, orange, orange, apricot, melon, watermelon); 如果我做了unset(橙色)两个条目都将取消设置(duh!) 是否有另一个功能只删除一个橙色条目??这样我就可以 $result = array(apple, orange, apricot, melon, watermelon); 编辑:原来错误在别处。谢谢大家的

我不确定这是不是一个愚蠢的问题,但找不到任何东西,主要是因为我不知道如何表达它

我有一个数组

$array1 = array(apple, orange, orange, apricot, melon, watermelon);
如果我做了
unset(橙色)两个条目都将取消设置(duh!)
是否有另一个功能只删除一个橙色条目??这样我就可以

$result = array(apple, orange, apricot, melon, watermelon);
编辑:原来错误在别处。谢谢大家的帮助 如果我是一个乞丐,我会删除这个问题锁吗?或者它会发生什么:D

$array1 = array(apple, orange, orange, apricot, melon, watermelon);
$array2 = array(apple, orange, apricot, melon, watermelon);
$array3 = array(apple, apricot, melon, watermelon);

function unset_first_occ ($array, $val) {
    foreach ($array as $key => $value) {
        if ($value == $val) {
            unset ($array[$key]);
            break;
        } 
    }
}

unset_first_occ (&$array1, 'orange');
unset_first_occ (&$array2, 'orange');
unset_first_occ (&$array3, 'orange');

var_dump($array1);
var_dump($array2);
var_dump($array3);
结果:

array(5) {
  [0]=>
  string(5) "apple"
  [2]=>
  string(6) "orange"
  [3]=>
  string(7) "apricot"
  [4]=>
  string(5) "melon"
  [5]=>
  string(10) "watermelon"
}

array(4) {
  [0]=>
  string(5) "apple"
  [2]=>
  string(7) "apricot"
  [3]=>
  string(5) "melon"
  [4]=>
  string(10) "watermelon"
}

array(4) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "apricot"
  [2]=>
  string(5) "melon"
  [3]=>
  string(10) "watermelon"
}
结果:

array(5) {
  [0]=>
  string(5) "apple"
  [2]=>
  string(6) "orange"
  [3]=>
  string(7) "apricot"
  [4]=>
  string(5) "melon"
  [5]=>
  string(10) "watermelon"
}

array(4) {
  [0]=>
  string(5) "apple"
  [2]=>
  string(7) "apricot"
  [3]=>
  string(5) "melon"
  [4]=>
  string(10) "watermelon"
}

array(4) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "apricot"
  [2]=>
  string(5) "melon"
  [3]=>
  string(10) "watermelon"
}

您可以使用
unset[$array[1]);
从数组中删除特定元素。

您可以使用
unset[$array[1]);
从数组中删除特定元素。

无需使其复杂化。如果要从数组中删除重复值,请使用
array\u unique
。请参见此

<?php
    $array1 = array(apple, orange, orange, apricot, melon, watermelon);
    $result = array_unique($array1);
    print_r($result);

?>

如果要从此数组中删除“橙色”,请使用以下命令

<?php
    $array1 = array(apple, orange, orange, apricot, melon, watermelon);
    $key = array_search('orange', $array1); // $key 
    unset($array1[$key]); 
    print_r($array1);

?>

无需使其复杂化。如果要从数组中删除重复值,请使用
array\u unique
。请参见此

<?php
    $array1 = array(apple, orange, orange, apricot, melon, watermelon);
    $result = array_unique($array1);
    print_r($result);

?>

如果要从此数组中删除“橙色”,请使用以下命令

<?php
    $array1 = array(apple, orange, orange, apricot, melon, watermelon);
    $key = array_search('orange', $array1); // $key 
    unset($array1[$key]); 
    print_r($array1);

?>

您可以使用
array\u search
查找第一次出现橙色的键,然后使用
array\u search
返回的键取消设置

$fruits = ['apple', 'orange', 'orange', '...'];
$indexOfOrange = array_search("orange", $fruits);
if (false !== $indexOfOrange) {
    unset($fruits[$indexOfOrange]);
}

您可以使用
array\u search
查找第一次出现橙色的键,然后使用
array\u search
返回的键将其取消设置

$fruits = ['apple', 'orange', 'orange', '...'];
$indexOfOrange = array_search("orange", $fruits);
if (false !== $indexOfOrange) {
    unset($fruits[$indexOfOrange]);
}


unset(橙色)
在本例中没有任何意义。您只是在寻找
array\u unique()
?不,
array\u unique
不会删除橙色,如果它是唯一的oneNo,则不会删除。那么逻辑是什么?您想只删除一个橙色吗?如果有两个橙色,我想删除一个,如果有一个橙色,我想删除该橙色
unset(橙色)
在本例中毫无意义。您只是在寻找
数组_unique()
?不,
array\u unique
不会删除橙色,如果它是唯一的oneNo,它不会删除。那么逻辑是什么?您想删除一个橙色吗?如果有两个橙色,我想删除一个,如果有一个橙色,我想删除一个。这就是我正在做的,但是
orange
条目是100%相同的颜色,您可以使用
unset($array[“orange”];
因此您不必记住数组position@swiss_blade
orange
不是此数组中的键,因此无法使用。你是对的@deceze,我只键入了一半的想法!我还想说,为了只删除一个“orange”实例,alexandros必须使用键…这就是我所做的,但是
orange
条目是100%相同的,您可以使用
unset($array[“orange”]);
这样您就不必记住数组position@swiss_blade
orange
不是此数组中的键,因此无法使用。你是对的@deceze,我只键入了一半的想法!我还想说,为了只删除一个“orange”实例,alexandros必须使用键…完全正确,我相应地更改了代码。感谢您,这正是我正在做的,
unset(橙色)
的意思是
unset(数组[key])
但由于我的懒惰,我简化了它。但是看到你的答案,我突然想到,我的数组中可能没有两个桔子。完全正确,我相应地改为代码。谢谢,这正是我正在做的,
unset(orange)
的意思是
unset(array[key])
但由于我的懒惰,我简化了它。但是看到你的答案,我突然想到,我的数组中可能没有两个桔子……我不想删除重复的entries,你只想删除那个桔子??我不知道桔子的位置,如果我搜索数组中的桔子并获得位置离子未设置(阵列[orangePos])出于某种原因,两个条目都被取消设置。我很欣赏你的坚持:P这就是我正在做的,但出于某种原因,两个橙色都被删除了。要么实际上有一个橙色,而我的其余代码是错误的,要么两个条目都是相同的,即具有相同的键和值我不想删除重复的条目。你只想删除那个橙色吗?我想如果我在数组中搜索橙色并得到未设置的位置(数组[orangePos]),我也不知道橙色的位置由于某种原因,两个条目都被取消设置。我欣赏你的坚持:P这就是我正在做的,但由于某种原因,两个桔子都被删除了。要么实际上有一个桔子,我的其余代码是错误的,要么两个条目都相同,即具有相同的键和值看着所有答案都相同,我的桔子有可能是10吗0%相同?具有相同的id和值??因为我正在这样做,但两个橙子都被删除。没有理由让它们“相同”。我只是使用了与您提供的声明数组完全相同的代码,我这边的代码运行良好。如果您在尝试删除任何内容之前卸载数组,它是否会分别显示两个桔子?如果是这样,它们不会被视为完全相同,并且无论发生什么情况,都应该按键取消设置。是的,但这是一个示例,实际代码非常庞大:)。Bas实际上,数组是您选择添加到购物车中的任何项目。它还有一个功能,可以一次添加2xOranges,而不是单击两次,这可能会导致重复出现oranges。我仍然需要看穿我猜的代码。我是第三个看完它的开发人员吗..!如果所有答案都相同,是否存在错误我的橙子可能100%完全相同?具有相同的id和值??因为我正在这样做,但两个橙子都被移除。没有理由让它们“相同”.我刚刚使用了与您声明数组时使用的代码完全相同的代码,在我这方面效果很好。如果您在尝试删除任何内容之前先转储数组,它是否会显示两个橙色分隔符