Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
PHP:array_diff-删除一个值_Php_Arrays - Fatal编程技术网

PHP:array_diff-删除一个值

PHP:array_diff-删除一个值,php,arrays,Php,Arrays,我目前正在尝试使用array_diff从数组中删除1个值 现在代码如下所示: $item_id = 501; $array = array_diff($user_items, array($item_id)); 用户项目数组:501502 数组中的结果正确:502 是否可以仅删除1x501而不是2x501值?或者换一种说法:将移除限制为1 数组则为:501502 感谢您提供任何建议您可以使用这些建议查找并删除第一个值: $pos = array_search($item_id, $user_i

我目前正在尝试使用array_diff从数组中删除1个值

现在代码如下所示:

$item_id = 501;
$array = array_diff($user_items, array($item_id));
用户项目数组:501502

数组中的结果正确:502

是否可以仅删除1x501而不是2x501值?或者换一种说法:将移除限制为1

数组则为:501502

感谢您提供任何建议

您可以使用这些建议查找并删除第一个值:

$pos = array_search($item_id, $user_items);

if($pos !== false)
  unset($user_items[$pos]);

如何搜索该项目,然后删除它(如果存在)

$key = array_search($item_id, $user_items)
if ($key !== FALSE) {
  unset($user_items[$key]);
}

使用
unset
并不像您想象的那么简单。有关详细信息,请参阅中Stefan Gehrig的回答。

OP只想删除一个值。如果他想把它们全部取出来,那么
array\u diff
将是一个更好的选择,这就是我的代码所做的。再看一眼,或者试着运行它并输出结果。是的,我现在看到您正在迭代指针。不过,在这种情况下只需要一个替换,所以使用循环没有意义